From 2f41c2f87ed64c6de60f209246ab13b1ddf56e1c Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Sun, 9 Nov 2025 09:45:08 -0500 Subject: [PATCH 01/28] Clean up --- examples/oauth-example/package.json | 1 + examples/oauth-example/src/index.ts | 24 ++- examples/oauth-example/src/routes/index.ts | 166 +++++++++++++++++- .../oauth-example/src/routes/iracing/utils.ts | 37 ---- examples/oauth-example/src/routes/oauth.ts | 164 ----------------- packages/api-router/package.json | 15 ++ packages/api-router/src/index.ts | 26 +++ packages/api-router/src/middleware.ts | 47 +++++ .../api-router/src/routes}/auth/index.ts | 0 .../api-router/src/routes}/data/car-class.ts | 0 .../api-router/src/routes}/data/car.ts | 0 .../api-router/src/routes}/data/constants.ts | 0 .../src/routes}/data/driver-stats.ts | 20 --- .../api-router/src/routes}/data/hosted.ts | 0 .../api-router/src/routes}/data/index.ts | 0 .../api-router/src/routes}/data/league.ts | 0 .../api-router/src/routes}/data/lookup.ts | 0 .../api-router/src/routes}/data/member.ts | 0 .../api-router/src/routes}/data/season.ts | 0 .../api-router/src/routes}/data/series.ts | 0 .../api-router/src/routes}/data/stats.ts | 0 .../api-router/src/routes}/data/team.ts | 0 .../src/routes}/data/time-attack.ts | 0 .../api-router/src/routes}/data/track.ts | 0 .../api-router/src/routes}/index.ts | 0 .../api-router/src/routes}/schema.ts | 0 packages/api-router/src/routes/utils.ts | 6 + packages/api-router/tsconfig.build.json | 11 ++ packages/api-router/tsconfig.json | 9 + 29 files changed, 299 insertions(+), 227 deletions(-) delete mode 100644 examples/oauth-example/src/routes/iracing/utils.ts delete mode 100644 examples/oauth-example/src/routes/oauth.ts create mode 100644 packages/api-router/package.json create mode 100644 packages/api-router/src/index.ts create mode 100644 packages/api-router/src/middleware.ts rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/auth/index.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/car-class.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/car.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/constants.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/driver-stats.ts (55%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/hosted.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/index.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/league.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/lookup.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/member.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/season.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/series.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/stats.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/team.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/time-attack.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/data/track.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/index.ts (100%) rename {examples/oauth-example/src/routes/iracing => packages/api-router/src/routes}/schema.ts (100%) create mode 100644 packages/api-router/src/routes/utils.ts create mode 100644 packages/api-router/tsconfig.build.json create mode 100644 packages/api-router/tsconfig.json diff --git a/examples/oauth-example/package.json b/examples/oauth-example/package.json index b51fc3f..1db75a6 100644 --- a/examples/oauth-example/package.json +++ b/examples/oauth-example/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@iracing-data/api": "workspace:*", + "@iracing-data/api-router": "workspace:*", "@iracing-data/oauth-client": "workspace:*", "axios": "^1.7.9", "better-call": "^1.0.24", diff --git a/examples/oauth-example/src/index.ts b/examples/oauth-example/src/index.ts index 900b8f3..de55755 100644 --- a/examples/oauth-example/src/index.ts +++ b/examples/oauth-example/src/index.ts @@ -1,11 +1,27 @@ -import { toNodeHandler } from "better-call/node"; +import { createNodeHandler } from "@iracing-data/api-router"; import express from "express"; import cookieParser from "cookie-parser"; import { page } from "./page"; import { PORT } from "./config"; -import router from "./router"; + +const iracingRouter = createNodeHandler({ + basePath: "/iracing", + openapi: { + path: "/reference", + }, + onRequest: (request) => { + console.debug("Making request:", request); + }, + onResponse: (response) => { + console.debug("Response", response); + }, + onError: (error) => { + console.debug("Error!", error); + }, +}); const app = express(); + app.use(express.urlencoded({ extended: true }), cookieParser()); app.get("/", (req, res) => { @@ -17,12 +33,12 @@ app.get("/", (req, res) => { page( hasToken ? `

Authenticated with iRacing

Sign out` - : `

Login

Login with iRacing` + : `

Login

Login with iRacing` ) ); }); -app.use(toNodeHandler(router.handler)); +app.use("/iracing", iracingRouter); app.listen(PORT, () => { console.info(`Example app listening on port ${PORT}`); diff --git a/examples/oauth-example/src/routes/index.ts b/examples/oauth-example/src/routes/index.ts index 9c4ffc9..b67a25a 100644 --- a/examples/oauth-example/src/routes/index.ts +++ b/examples/oauth-example/src/routes/index.ts @@ -1,2 +1,164 @@ -export * from "./iracing"; -export * from "./oauth"; +import client from "@/oauth-client"; +import { BASE_URL } from "@iracing-data/oauth-client"; +import { createEndpoint } from "better-call"; +import path from "path"; +import { z } from "zod"; + +// TODO: Add routes for session management + +export const oauthSignIn = createEndpoint( + "/oauth/iracing/login", + { + method: "GET", + }, + async (context) => { + const { url } = await client.authorize(); + return context.redirect(url.toString()); + } +); + +export const oauthCallback = createEndpoint( + "/oauth/iracing/callback", + { + method: "GET", + query: z.object({ + code: z.string(), + state: z.string(), + }), + }, + async (context) => { + const token = await client.callback(new URLSearchParams(context.query)); + + /** + * TODO: Write some sort of handler at the top-level that consumers can provide to process the token + * before redirecting. + */ + context.setCookie("iracing-token", token.access_token, { + httpOnly: true, + path: "/", + maxAge: token.expires_in, + }); + + context.setHeader("X-IRACING-ACCESS-TOKEN", token.access_token); + context.setHeader( + "X-IRACING-ACCESS-TOKEN-EXPIRES-IN", + token.expires_in.toString() + ); + + if (token.scope) { + context.setHeader("X-IRACING-SCOPE", token.scope); + } + + if (token.refresh_token) { + context.setHeader("X-IRACING-REFRESH-TOKEN", token.refresh_token); + } + + if (token.refresh_token_expires_in) { + context.setHeader( + "X-IRACING-REFRESH-TOKEN-EXPIRES-IN", + token.refresh_token_expires_in.toString() + ); + } + + return context.redirect("/"); + } +); + +export const oauthSignOut = createEndpoint( + "/oauth/iracing/logout", + { + method: "GET", + }, + async (context) => { + context.setCookie("iracing-token", "", { + httpOnly: true, + path: "/", + maxAge: 0, + }); + + return context.redirect("/"); + } +); + +export const oauthSessions = createEndpoint( + "/oauth/sessions", + { + method: "GET", + }, + async (context) => { + const accessToken = + context.getHeader("X-IRACING-ACCESS-TOKEN") || + context.getCookie("iracing-token"); + + return fetch(path.join(BASE_URL, "sessions"), { + headers: { + Authorization: accessToken ? `Bearer ${accessToken}` : undefined, + }, + }); + } +); + +export const revokeCurrentOauthSession = createEndpoint( + "/oauth/revoke/current", + { + method: "POST", + body: z.object({ + forgetBrowser: z.boolean().optional(), + }), + }, + async (context) => { + const accessToken = + context.getHeader("X-IRACING-ACCESS-TOKEN") || + context.getCookie("iracing-token"); + + return fetch(path.join(BASE_URL, "revoke", "current"), { + body: JSON.stringify(context.body), + headers: { + Authorization: accessToken ? `Bearer ${accessToken}` : undefined, + "Content-Type": "application/x-www-form-urlencoded", + }, + }); + } +); + +export const revokeOauthSessions = createEndpoint( + "/oauth/revoke/current", + { + method: "POST", + body: z.object({ + sessionIds: z.array(z.string()), + }), + }, + async (context) => { + const accessToken = + context.getHeader("X-IRACING-ACCESS-TOKEN") || + context.getCookie("iracing-token"); + + return fetch(path.join(BASE_URL, "revoke", "current"), { + body: JSON.stringify({ session_ids: context.body.sessionIds.join(",") }), + headers: { + Authorization: accessToken ? `Bearer ${accessToken}` : undefined, + "Content-Type": "application/x-www-form-urlencoded", + }, + }); + } +); + +export const revokeClientOauthSessions = createEndpoint( + "/oauth/revoke/client", + { + method: "POST", + }, + async (context) => { + const accessToken = + context.getHeader("X-IRACING-ACCESS-TOKEN") || + context.getCookie("iracing-token"); + + return fetch(path.join(BASE_URL, "revoke", "client"), { + headers: { + Authorization: accessToken ? `Bearer ${accessToken}` : undefined, + "Content-Type": "application/x-www-form-urlencoded", + }, + }); + } +); diff --git a/examples/oauth-example/src/routes/iracing/utils.ts b/examples/oauth-example/src/routes/iracing/utils.ts deleted file mode 100644 index ed3ae82..0000000 --- a/examples/oauth-example/src/routes/iracing/utils.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { IRacingAPIClient } from "@iracing-data/api"; -import axios from "axios"; -import { - createEndpoint as createEndpointFn, - createMiddleware, -} from "better-call"; - -export const iracingClientMiddleware = createMiddleware(async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - const network = axios.create({ - baseURL: "https://members-ng.iracing.com/", - }); - - network.interceptors.request.use((config) => { - /** - * Only sign requests if an access token is provided - */ - if (accessToken) { - config.headers.Authorization = `Bearer ${accessToken}`; - } - - return config; - }); - - const iracing = new IRacingAPIClient(network); - - return { - iracing, - }; -}); - -export const createEndpoint = createEndpointFn.create({ - use: [iracingClientMiddleware], -}); diff --git a/examples/oauth-example/src/routes/oauth.ts b/examples/oauth-example/src/routes/oauth.ts deleted file mode 100644 index 0d58d0d..0000000 --- a/examples/oauth-example/src/routes/oauth.ts +++ /dev/null @@ -1,164 +0,0 @@ -import client from "@/oauth-client"; -import { BASE_URL } from "@iracing-data/oauth-client"; -import { createEndpoint } from "better-call"; -import path from "path"; -import { z } from "zod"; - -// TODO: Add routes for session management - -export const oauthSignIn = createEndpoint( - "/login", - { - method: "GET", - }, - async (context) => { - const { url } = await client.authorize(); - return context.redirect(url.toString()); - } -); - -export const oauthCallback = createEndpoint( - "/oauth/iracing/callback", - { - method: "GET", - query: z.object({ - code: z.string(), - state: z.string(), - }), - }, - async (context) => { - const token = await client.callback(new URLSearchParams(context.query)); - - /** - * TODO: Write some sort of handler at the top-level that consumers can provide to process the token - * before redirecting. - */ - context.setCookie("iracing-token", token.access_token, { - httpOnly: true, - path: "/", - maxAge: token.expires_in, - }); - - context.setHeader("X-IRACING-ACCESS-TOKEN", token.access_token); - context.setHeader( - "X-IRACING-ACCESS-TOKEN-EXPIRES-IN", - token.expires_in.toString() - ); - - if (token.scope) { - context.setHeader("X-IRACING-SCOPE", token.scope); - } - - if (token.refresh_token) { - context.setHeader("X-IRACING-REFRESH-TOKEN", token.refresh_token); - } - - if (token.refresh_token_expires_in) { - context.setHeader( - "X-IRACING-REFRESH-TOKEN-EXPIRES-IN", - token.refresh_token_expires_in.toString() - ); - } - - return context.redirect("/"); - } -); - -export const oauthSignOut = createEndpoint( - "/logout", - { - method: "GET", - }, - async (context) => { - context.setCookie("iracing-token", "", { - httpOnly: true, - path: "/", - maxAge: 0, - }); - - return context.redirect("/"); - } -); - -export const oauthSessions = createEndpoint( - "/oauth/sessions", - { - method: "GET", - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "sessions"), { - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - }, - }); - } -); - -export const revokeCurrentOauthSession = createEndpoint( - "/oauth/revoke/current", - { - method: "POST", - body: z.object({ - forgetBrowser: z.boolean().optional(), - }), - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "revoke", "current"), { - body: JSON.stringify(context.body), - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - "Content-Type": "application/x-www-form-urlencoded", - }, - }); - } -); - -export const revokeOauthSessions = createEndpoint( - "/oauth/revoke/current", - { - method: "POST", - body: z.object({ - sessionIds: z.array(z.string()), - }), - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "revoke", "current"), { - body: JSON.stringify({ session_ids: context.body.sessionIds.join(",") }), - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - "Content-Type": "application/x-www-form-urlencoded", - }, - }); - } -); - -export const revokeClientOauthSessions = createEndpoint( - "/oauth/revoke/client", - { - method: "POST", - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "revoke", "client"), { - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - "Content-Type": "application/x-www-form-urlencoded", - }, - }); - } -); diff --git a/packages/api-router/package.json b/packages/api-router/package.json new file mode 100644 index 0000000..e6fb8fe --- /dev/null +++ b/packages/api-router/package.json @@ -0,0 +1,15 @@ +{ + "name": "@iracing-data/api-router", + "version": "0.0.1-alpha.0", + "description": "better-call based router for the iRacing `/data` API.", + "main": "dist/index.js", + "scripts": { + "build": "tsc --build tsconfig.build.json" + }, + "dependencies": { + "@iracing-data/api": "workspace:*", + "axios": "^1.7.9", + "better-call": "^1.0.26", + "zod": "^4.1.12" + } +} \ No newline at end of file diff --git a/packages/api-router/src/index.ts b/packages/api-router/src/index.ts new file mode 100644 index 0000000..92a020c --- /dev/null +++ b/packages/api-router/src/index.ts @@ -0,0 +1,26 @@ +import { createRouter as createRouterFn, RouterConfig } from "better-call"; +import { toNodeHandler as toNodeHandlerFn } from "better-call/node"; +import * as routes from "./routes"; + +export interface CreateRouterOptions extends RouterConfig {} + +export function createRouter({ ...options }: CreateRouterOptions = {}) { + return createRouterFn( + { + ...routes, + }, + options + ); +} + +export function createNodeHandler(options: CreateRouterOptions = {}) { + return toNodeHandler(createRouter(options)); +} + +export function toNodeHandler(router: ReturnType) { + return toNodeHandlerFn(router.handler); +} + +export * from "./middleware"; +export { routes }; +export default createRouter; diff --git a/packages/api-router/src/middleware.ts b/packages/api-router/src/middleware.ts new file mode 100644 index 0000000..23f2a0d --- /dev/null +++ b/packages/api-router/src/middleware.ts @@ -0,0 +1,47 @@ +import IRacingAPIClient from "@iracing-data/api"; +import axios from "axios"; +import { createMiddleware } from "better-call"; + +export const sessionMiddleware = createMiddleware( + { + requireHeaders: true, + }, + async (context) => { + const accessToken = context.getHeader("X-IRACING-ACCESS-TOKEN"); + + return { + accessToken, + }; + } +); + +/** + * ???: Should this handle token refreshing? + */ +export const iracingClientMiddleware = createMiddleware( + { + use: [sessionMiddleware], + }, + async ({ context: { accessToken } }) => { + const network = axios.create({ + baseURL: "https://members-ng.iracing.com/", + }); + + network.interceptors.request.use((config) => { + /** + * Only sign requests if an access token is provided + */ + if (accessToken) { + config.headers.Authorization = `Bearer ${accessToken}`; + } + + return config; + }); + + const iracing = new IRacingAPIClient(network); + + return { + iracing, + }; + } +); diff --git a/examples/oauth-example/src/routes/iracing/auth/index.ts b/packages/api-router/src/routes/auth/index.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/auth/index.ts rename to packages/api-router/src/routes/auth/index.ts diff --git a/examples/oauth-example/src/routes/iracing/data/car-class.ts b/packages/api-router/src/routes/data/car-class.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/car-class.ts rename to packages/api-router/src/routes/data/car-class.ts diff --git a/examples/oauth-example/src/routes/iracing/data/car.ts b/packages/api-router/src/routes/data/car.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/car.ts rename to packages/api-router/src/routes/data/car.ts diff --git a/examples/oauth-example/src/routes/iracing/data/constants.ts b/packages/api-router/src/routes/data/constants.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/constants.ts rename to packages/api-router/src/routes/data/constants.ts diff --git a/examples/oauth-example/src/routes/iracing/data/driver-stats.ts b/packages/api-router/src/routes/data/driver-stats.ts similarity index 55% rename from examples/oauth-example/src/routes/iracing/data/driver-stats.ts rename to packages/api-router/src/routes/data/driver-stats.ts index 57f3ff2..cb8c799 100644 --- a/examples/oauth-example/src/routes/iracing/data/driver-stats.ts +++ b/packages/api-router/src/routes/data/driver-stats.ts @@ -15,26 +15,6 @@ export const category = createEndpoint( z.literal("formula_car"), ]), }), - // metadata: { - // openapi: { - // requestBody: { - // content: { - // "application/json": { - // schema: { - // type: "object", - // properties: { - // category: { - // type: "string", - // description: - // "The category to look up for the current driver.", - // }, - // }, - // }, - // }, - // }, - // }, - // }, - // }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.driverStats.category(query); diff --git a/examples/oauth-example/src/routes/iracing/data/hosted.ts b/packages/api-router/src/routes/data/hosted.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/hosted.ts rename to packages/api-router/src/routes/data/hosted.ts diff --git a/examples/oauth-example/src/routes/iracing/data/index.ts b/packages/api-router/src/routes/data/index.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/index.ts rename to packages/api-router/src/routes/data/index.ts diff --git a/examples/oauth-example/src/routes/iracing/data/league.ts b/packages/api-router/src/routes/data/league.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/league.ts rename to packages/api-router/src/routes/data/league.ts diff --git a/examples/oauth-example/src/routes/iracing/data/lookup.ts b/packages/api-router/src/routes/data/lookup.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/lookup.ts rename to packages/api-router/src/routes/data/lookup.ts diff --git a/examples/oauth-example/src/routes/iracing/data/member.ts b/packages/api-router/src/routes/data/member.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/member.ts rename to packages/api-router/src/routes/data/member.ts diff --git a/examples/oauth-example/src/routes/iracing/data/season.ts b/packages/api-router/src/routes/data/season.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/season.ts rename to packages/api-router/src/routes/data/season.ts diff --git a/examples/oauth-example/src/routes/iracing/data/series.ts b/packages/api-router/src/routes/data/series.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/series.ts rename to packages/api-router/src/routes/data/series.ts diff --git a/examples/oauth-example/src/routes/iracing/data/stats.ts b/packages/api-router/src/routes/data/stats.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/stats.ts rename to packages/api-router/src/routes/data/stats.ts diff --git a/examples/oauth-example/src/routes/iracing/data/team.ts b/packages/api-router/src/routes/data/team.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/team.ts rename to packages/api-router/src/routes/data/team.ts diff --git a/examples/oauth-example/src/routes/iracing/data/time-attack.ts b/packages/api-router/src/routes/data/time-attack.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/time-attack.ts rename to packages/api-router/src/routes/data/time-attack.ts diff --git a/examples/oauth-example/src/routes/iracing/data/track.ts b/packages/api-router/src/routes/data/track.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/data/track.ts rename to packages/api-router/src/routes/data/track.ts diff --git a/examples/oauth-example/src/routes/iracing/index.ts b/packages/api-router/src/routes/index.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/index.ts rename to packages/api-router/src/routes/index.ts diff --git a/examples/oauth-example/src/routes/iracing/schema.ts b/packages/api-router/src/routes/schema.ts similarity index 100% rename from examples/oauth-example/src/routes/iracing/schema.ts rename to packages/api-router/src/routes/schema.ts diff --git a/packages/api-router/src/routes/utils.ts b/packages/api-router/src/routes/utils.ts new file mode 100644 index 0000000..d3a254f --- /dev/null +++ b/packages/api-router/src/routes/utils.ts @@ -0,0 +1,6 @@ +import { createEndpoint as createEndpointFn } from "better-call"; +import { iracingClientMiddleware } from "../middleware"; + +export const createEndpoint = createEndpointFn.create({ + use: [iracingClientMiddleware], +}); diff --git a/packages/api-router/tsconfig.build.json b/packages/api-router/tsconfig.build.json new file mode 100644 index 0000000..24068a8 --- /dev/null +++ b/packages/api-router/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noUnusedLocals": true, + "module": "nodenext", + "moduleResolution": "nodenext" + }, + "exclude": ["node_modules", "dist", "scripts"] +} diff --git a/packages/api-router/tsconfig.json b/packages/api-router/tsconfig.json new file mode 100644 index 0000000..5455dae --- /dev/null +++ b/packages/api-router/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} From 243d641f286bb6853b9a7882fe87ca0edb773bac Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Sun, 9 Nov 2025 09:45:30 -0500 Subject: [PATCH 02/28] Put logging file back --- examples/race-events/{ => src}/logging.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/race-events/{ => src}/logging.ts (100%) diff --git a/examples/race-events/logging.ts b/examples/race-events/src/logging.ts similarity index 100% rename from examples/race-events/logging.ts rename to examples/race-events/src/logging.ts From f5f71258b332130f17077c329e0ef6a8213d93d9 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Tue, 11 Nov 2025 14:22:05 -0500 Subject: [PATCH 03/28] Add api-schema and openapi generation --- packages/api-client/openapi/openapi.json | 4147 +++++++++++++++++ packages/api-client/openapitools.json | 7 + packages/api-client/package.json | 12 + packages/api-router/package.json | 1 + packages/api-router/src/routes/auth/index.ts | 15 +- .../api-router/src/routes/data/car-class.ts | 43 +- packages/api-router/src/routes/data/car.ts | 30 + .../api-router/src/routes/data/constants.ts | 60 +- .../src/routes/data/driver-stats.ts | 16 + packages/api-router/src/routes/data/hosted.ts | 36 +- packages/api-router/src/routes/data/league.ts | 144 + packages/api-router/src/routes/data/lookup.ts | 85 +- packages/api-router/src/routes/data/member.ts | 68 +- packages/api-router/src/routes/data/season.ts | 32 + packages/api-router/src/routes/data/series.ts | 124 +- packages/api-router/src/routes/data/stats.ts | 236 +- packages/api-router/src/routes/data/team.ts | 32 + .../api-router/src/routes/data/time-attack.ts | 15 + packages/api-router/src/routes/data/track.ts | 30 + packages/api-router/src/routes/schema.ts | 59 - packages/api-schema/package.json | 13 + packages/api-schema/src/index.ts | 1 + packages/api-schema/src/schema.ts | 1009 ++++ packages/api-schema/tsconfig.build.json | 11 + packages/api-schema/tsconfig.json | 9 + .../helpers/api-schema-to-openapi/README.md | 11 + .../api-schema-to-openapi/package.json | 21 + .../helpers/api-schema-to-openapi/src/cli.ts | 24 + .../api-schema-to-openapi/src/index.ts | 1778 +++++++ .../api-schema-to-openapi/tsconfig.build.json | 14 + .../api-schema-to-openapi/tsconfig.json | 9 + 31 files changed, 8012 insertions(+), 80 deletions(-) create mode 100644 packages/api-client/openapi/openapi.json create mode 100644 packages/api-client/openapitools.json create mode 100644 packages/api-client/package.json delete mode 100644 packages/api-router/src/routes/schema.ts create mode 100644 packages/api-schema/package.json create mode 100644 packages/api-schema/src/index.ts create mode 100644 packages/api-schema/src/schema.ts create mode 100644 packages/api-schema/tsconfig.build.json create mode 100644 packages/api-schema/tsconfig.json create mode 100644 packages/helpers/api-schema-to-openapi/README.md create mode 100644 packages/helpers/api-schema-to-openapi/package.json create mode 100644 packages/helpers/api-schema-to-openapi/src/cli.ts create mode 100644 packages/helpers/api-schema-to-openapi/src/index.ts create mode 100644 packages/helpers/api-schema-to-openapi/tsconfig.build.json create mode 100644 packages/helpers/api-schema-to-openapi/tsconfig.json diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json new file mode 100644 index 0000000..2629116 --- /dev/null +++ b/packages/api-client/openapi/openapi.json @@ -0,0 +1,4147 @@ +{ + "openapi": "3.1.1", + "info": { + "title": "iRacing `/data` API", + "version": "0.0.1" + }, + "servers": [ + { + "url": "https://members-ng.iracing.com/" + } + ], + "security": [ + { + "bearerAuth": [] + } + ], + "tags": [ + { + "name": "doc", + "description": "A documentation endpoint." + }, + { + "name": "car", + "description": "Car service endpoint." + }, + { + "name": "carclass", + "description": "Car class service endpoint." + }, + { + "name": "constants", + "description": "Constants service endpoint." + }, + { + "name": "driver_stats", + "description": "Driver stats service endpoint." + }, + { + "name": "hosted", + "description": "Hosted service endpoint." + }, + { + "name": "league", + "description": "League service endpoint" + }, + { + "name": "lookup", + "description": "Lookup endpoints for static reference data (countries, licenses, drivers, etc.)" + }, + { + "name": "member", + "description": "Member profile and related endpoints (profile, awards, participation credits)." + }, + { + "name": "results", + "description": "Race and session result endpoints (lap data, event logs, season results)." + }, + { + "name": "season", + "description": "Season-related endpoints (season lists, race guides, schedules)." + }, + { + "name": "series", + "description": "Series endpoints (series metadata, seasons, assets)." + }, + { + "name": "stats", + "description": "Statistical endpoints and summaries for members and seasons." + }, + { + "name": "team", + "description": "Team endpoints (team details, membership)." + }, + { + "name": "time_attack", + "description": "Time attack specific endpoints and member season results." + }, + { + "name": "track", + "description": "Track metadata and asset endpoints." + } + ], + "paths": { + "/data/doc": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/carclass": { + "get": { + "tags": [ + "doc", + "carclass" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/carclass/get": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/car": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/car/assets": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/car/get": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants/categories": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants/divisions": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants/event_types": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category/oval": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category/sports_car": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category/formula_car": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category/road": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category/dirt_oval": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category/dirt_road": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/hosted": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/hosted/combined_sessions": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/hosted/sessions": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/cust_league_sessions": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/directory": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/get": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/get_points_systems": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/membership": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/roster": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/seasons": { + "get": { + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/season_standings": { + "get": { + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/season_sessions": { + "get": { + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/countries": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/drivers": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/flairs": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/get": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/licenses": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/awards": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/award_instances": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/chart_data": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/get": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/info": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/participation_credits": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/profile": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/get": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/event_log": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/lap_chart_data": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/lap_data": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/search_hosted": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/search_series": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/season_results": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/list": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/race_guide": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/spectator_subsessionids": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/spectator_subsessionids_detail": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/assets": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/get": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/past_seasons": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/seasons": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/season_list": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/season_schedule": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/stats_series": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_bests": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_career": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_division": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_recap": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_recent_races": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_summary": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_yearly": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_driver_standings": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_supersession_standings": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_team_standings": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_tt_standings": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_tt_results": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_qualify_results": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/world_records": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/team": { + "get": { + "tags": [ + "doc" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/team/get": { + "get": { + "tags": [ + "doc", + "team" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/team/membership": { + "get": { + "tags": [ + "doc", + "team" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/time_attack": { + "get": { + "tags": [ + "doc", + "time_attack" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/time_attack/member_season_results": { + "get": { + "tags": [ + "doc", + "time_attack" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/track": { + "get": { + "tags": [ + "doc", + "track" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/track/assets": { + "get": { + "tags": [ + "doc", + "track" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/track/get": { + "get": { + "tags": [ + "doc", + "track" + ], + "responses": { + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/carclass/get": { + "get": { + "operationId": "getCarClass", + "summary": "Gets car classes.", + "tags": [ + "carclass" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/car/assets": { + "get": { + "description": "image paths are relative to https://images-static.iracing.com/", + "tags": [ + "car" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/car/get": { + "get": { + "tags": [ + "car" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/constants/categories": { + "get": { + "description": "Constant; returned directly as an array of objects", + "tags": [ + "constants" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/constants/divisions": { + "get": { + "description": "Constant; returned directly as an array of objects", + "tags": [ + "constants" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/constants/event_types": { + "get": { + "description": "Constant; returned directly as an array of objects", + "tags": [ + "constants" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/driver_stats_by_category/{category}": { + "get": { + "tags": [ + "driver_stats" + ], + "parameters": [ + { + "in": "path", + "name": "category", + "schema": { + "$ref": "#/components/schemas/iracingCategory" + }, + "required": true, + "description": "Racing category." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/hosted/combined_sessions": { + "get": { + "description": "Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.", + "tags": [ + "hosted" + ], + "parameters": [ + { + "in": "query", + "name": "package_id", + "schema": { + "description": "If set, return only sessions using this car or track package ID.", + "type": "number" + }, + "description": "If set, return only sessions using this car or track package ID." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/hosted/sessions": { + "get": { + "description": "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", + "tags": [ + "hosted" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/cust_league_sessions": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "mine", + "schema": { + "description": "If true, return only sessions created by this user.", + "type": "boolean" + }, + "description": "If true, return only sessions created by this user." + }, + { + "in": "query", + "name": "package_id", + "schema": { + "description": "If set, return only sessions using this car or track package ID.", + "type": "number" + }, + "description": "If set, return only sessions using this car or track package ID." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/directory": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "search", + "schema": { + "description": "Will search against league name, description, owner, and league ID.", + "type": "string" + }, + "description": "Will search against league name, description, owner, and league ID." + }, + { + "in": "query", + "name": "tag", + "schema": { + "description": "One or more tags, comma-separated.", + "type": "string" + }, + "description": "One or more tags, comma-separated." + }, + { + "in": "query", + "name": "restrict_to_member", + "schema": { + "description": "If true include only leagues for which customer is a member.", + "type": "boolean" + }, + "description": "If true include only leagues for which customer is a member." + }, + { + "in": "query", + "name": "restrict_to_recruiting", + "schema": { + "description": "If true include only leagues which are recruiting.", + "type": "boolean" + }, + "description": "If true include only leagues which are recruiting." + }, + { + "in": "query", + "name": "restrict_to_friends", + "schema": { + "description": "If true include only leagues owned by a friend.", + "type": "boolean" + }, + "description": "If true include only leagues owned by a friend." + }, + { + "in": "query", + "name": "restrict_to_watched", + "schema": { + "description": "If true include only leagues owned by a watched member.", + "type": "boolean" + }, + "description": "If true include only leagues owned by a watched member." + }, + { + "in": "query", + "name": "minimum_roster_count", + "schema": { + "description": "If set include leagues with at least this number of members.", + "type": "number" + }, + "description": "If set include leagues with at least this number of members." + }, + { + "in": "query", + "name": "maximum_roster_count", + "schema": { + "description": "If set include leagues with no more than this number of members.", + "type": "number" + }, + "description": "If set include leagues with no more than this number of members." + }, + { + "in": "query", + "name": "lowerbound", + "schema": { + "description": "First row of results to return. Defaults to 1.", + "type": "number" + }, + "description": "First row of results to return. Defaults to 1." + }, + { + "in": "query", + "name": "upperbound", + "schema": { + "description": "Last row of results to return. Defaults to lowerbound + 39.", + "type": "number" + }, + "description": "Last row of results to return. Defaults to lowerbound + 39." + }, + { + "in": "query", + "name": "sort", + "schema": { + "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.", + "type": "string" + }, + "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance." + }, + { + "in": "query", + "name": "order", + "schema": { + "description": "One of asc or desc. Defaults to asc.", + "type": "string" + }, + "description": "One of asc or desc. Defaults to asc." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/get": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "description": "For faster responses, only request when necessary.", + "type": "boolean" + }, + "description": "For faster responses, only request when necessary." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/get_points_systems": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_id", + "schema": { + "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.", + "type": "number" + }, + "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/membership": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.", + "$ref": "#/components/schemas/customerId" + }, + "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned." + }, + { + "in": "query", + "name": "include_league", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/roster": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "description": "For faster responses, only request when necessary.", + "type": "boolean" + }, + "description": "For faster responses, only request when necessary." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/seasons": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "retired", + "schema": { + "description": "If true include seasons which are no longer active.", + "type": "boolean" + }, + "description": "If true include seasons which are no longer active." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/season_standings": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "car_id", + "schema": { + "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.", + "type": "number" + }, + "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/season_sessions": { + "get": { + "tags": [ + "league" + ], + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "results_only", + "schema": { + "description": "If true include only sessions for which results are available.", + "type": "boolean" + }, + "description": "If true include only sessions for which results are available." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/countries": { + "get": { + "tags": [ + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/flairs": { + "get": { + "tags": [ + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/licenses": { + "get": { + "tags": [ + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/drivers": { + "get": { + "tags": [ + "lookup" + ], + "parameters": [ + { + "in": "query", + "name": "search_term", + "schema": { + "description": "A cust_id or partial name for which to search.", + "type": "string" + }, + "required": true, + "description": "A cust_id or partial name for which to search." + }, + { + "in": "query", + "name": "league_id", + "schema": { + "description": "Narrow the search to the roster of the given league.", + "type": "number" + }, + "description": "Narrow the search to the roster of the given league." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/get": { + "get": { + "tags": [ + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/awards": { + "get": { + "tags": [ + "member" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/award_instances": { + "get": { + "tags": [ + "member" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "award_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/chart_data": { + "get": { + "tags": [ + "member" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "category_id", + "schema": { + "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road", + "type": "number" + }, + "required": true, + "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road" + }, + { + "in": "query", + "name": "chart_type", + "schema": { + "description": "1 - iRating; 2 - TT Rating; 3 - License/SR", + "$ref": "#/components/schemas/iracingChartType" + }, + "required": true, + "description": "1 - iRating; 2 - TT Rating; 3 - License/SR" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/get": { + "get": { + "tags": [ + "member" + ], + "parameters": [ + { + "in": "query", + "name": "cust_ids", + "schema": { + "description": "?cust_ids=2,3,4", + "type": "array", + "items": { + "type": "number" + } + }, + "required": true, + "description": "?cust_ids=2,3,4" + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/info": { + "get": { + "tags": [ + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/participation_credits": { + "get": { + "tags": [ + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/profile": { + "get": { + "operationId": "getProfile", + "summary": "Gets a requested user's profile.", + "tags": [ + "member" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/get": { + "get": { + "tags": [ + "results" + ], + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/event_log": { + "get": { + "tags": [ + "results" + ], + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "simsession_number", + "schema": { + "description": "The main event is 0; the preceding event is -1, and so on.", + "type": "number" + }, + "required": true, + "description": "The main event is 0; the preceding event is -1, and so on." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/lap_chart_data": { + "get": { + "tags": [ + "results" + ], + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "simsession_number", + "schema": { + "description": "The main event is 0; the preceding event is -1, and so on.", + "type": "number" + }, + "required": true, + "description": "The main event is 0; the preceding event is -1, and so on." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/lap_data": { + "get": { + "tags": [ + "results" + ], + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "simsession_number", + "schema": { + "description": "The main event is 0; the preceding event is -1, and so on.", + "type": "number" + }, + "required": true, + "description": "The main event is 0; the preceding event is -1, and so on." + }, + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included." + }, + { + "in": "query", + "name": "team_id", + "schema": { + "description": "Required if the subsession was a team event.", + "type": "number" + }, + "description": "Required if the subsession was a team event." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/search_hosted": { + "get": { + "tags": [ + "results" + ], + "parameters": [ + { + "in": "query", + "name": "start_range_begin", + "schema": { + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "start_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "finish_range_begin", + "schema": { + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "finish_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "The participant's customer ID. Ignored if team_id is supplied.", + "$ref": "#/components/schemas/customerId" + }, + "description": "The participant's customer ID. Ignored if team_id is supplied." + }, + { + "in": "query", + "name": "team_id", + "schema": { + "description": "The team ID to search for. Takes priority over cust_id if both are supplied.", + "type": "number" + }, + "description": "The team ID to search for. Takes priority over cust_id if both are supplied." + }, + { + "in": "query", + "name": "host_cust_id", + "schema": { + "description": "The host's customer ID.", + "$ref": "#/components/schemas/customerId" + }, + "description": "The host's customer ID." + }, + { + "in": "query", + "name": "session_name", + "schema": { + "description": "Part or all of the session's name.", + "type": "string" + }, + "description": "Part or all of the session's name." + }, + { + "in": "query", + "name": "league_id", + "schema": { + "description": "Include only results for the league with this ID.", + "type": "number" + }, + "description": "Include only results for the league with this ID." + }, + { + "in": "query", + "name": "league_season_id", + "schema": { + "description": "Include only results for the league season with this ID.", + "type": "number" + }, + "description": "Include only results for the league season with this ID." + }, + { + "in": "query", + "name": "car_id", + "schema": { + "description": "One of the cars used by the session.", + "type": "number" + }, + "description": "One of the cars used by the session." + }, + { + "in": "query", + "name": "track_id", + "schema": { + "description": "The ID of the track used by the session.", + "type": "number" + }, + "description": "The ID of the track used by the session." + }, + { + "in": "query", + "name": "category_ids", + "schema": { + "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + "type": "array", + "items": { + "type": "number" + } + }, + "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/search_series": { + "get": { + "tags": [ + "results" + ], + "parameters": [ + { + "in": "query", + "name": "season_year", + "schema": { + "description": "Required when using season_quarter.", + "type": "number" + }, + "description": "Required when using season_quarter." + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "description": "Required when using season_year.", + "type": "number" + }, + "description": "Required when using season_year." + }, + { + "in": "query", + "name": "start_range_begin", + "schema": { + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "start_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "finish_range_begin", + "schema": { + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "finish_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied." + }, + { + "in": "query", + "name": "team_id", + "schema": { + "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", + "type": "number" + }, + "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied." + }, + { + "in": "query", + "name": "series_id", + "schema": { + "description": "Include only sessions for series with this ID.", + "type": "number" + }, + "description": "Include only sessions for series with this ID." + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "Include only sessions with this race week number.", + "type": "number" + }, + "description": "Include only sessions with this race week number." + }, + { + "in": "query", + "name": "official_only", + "schema": { + "description": "If true, include only sessions earning championship points. Defaults to all.", + "type": "boolean" + }, + "description": "If true, include only sessions earning championship points. Defaults to all." + }, + { + "in": "query", + "name": "event_types", + "schema": { + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + "type": "array", + "items": { + "type": "number" + } + }, + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" + }, + { + "in": "query", + "name": "category_ids", + "schema": { + "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + "type": "array", + "items": { + "type": "number" + } + }, + "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/season_results": { + "get": { + "tags": [ + "results" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "event_type", + "schema": { + "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race", + "$ref": "#/components/schemas/iracingEventType" + }, + "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race" + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/season/list": { + "get": { + "tags": [ + "season" + ], + "parameters": [ + { + "in": "query", + "name": "season_year", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/season/race_guide": { + "get": { + "tags": [ + "season" + ], + "parameters": [ + { + "in": "query", + "name": "from", + "schema": { + "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" + }, + "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time." + }, + { + "in": "query", + "name": "include_end_after_from", + "schema": { + "description": "Include sessions which start before 'from' but end after.", + "type": "boolean" + }, + "description": "Include sessions which start before 'from' but end after." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/assets": { + "get": { + "tags": [ + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/get": { + "get": { + "tags": [ + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/past_seasons": { + "get": { + "tags": [ + "series" + ], + "parameters": [ + { + "in": "query", + "name": "series_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/seasons": { + "get": { + "tags": [ + "series" + ], + "parameters": [ + { + "in": "query", + "name": "include_series", + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "season_year", + "schema": { + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + "type": "number" + }, + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + "type": "number" + }, + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/season_list": { + "get": { + "tags": [ + "series" + ], + "parameters": [ + { + "in": "query", + "name": "include_series", + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "season_year", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/season_schedule": { + "get": { + "tags": [ + "series" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/stats_series": { + "get": { + "tags": [ + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_bests": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "car_id", + "schema": { + "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls.", + "type": "number" + }, + "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_career": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_division": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "event_type", + "schema": { + "description": "The event type code for the division type: 4 - Time Trial; 5 - Race", + "anyOf": [ + { + "description": "Time trial", + "type": "number", + "const": 4 + }, + { + "description": "Race", + "type": "number", + "const": 5 + } + ] + }, + "required": true, + "description": "The event type code for the division type: 4 - Time Trial; 5 - Race" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_recap": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "year", + "schema": { + "description": "Season year; if not supplied the current calendar year (UTC) is used.", + "anyOf": [ + { + "type": "number", + "const": 1 + }, + { + "type": "number", + "const": 2 + }, + { + "type": "number", + "const": 3 + }, + { + "type": "number", + "const": 4 + } + ] + }, + "description": "Season year; if not supplied the current calendar year (UTC) is used." + }, + { + "in": "query", + "name": "season", + "schema": { + "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year.", + "type": "number" + }, + "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_recent_races": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_summary": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_yearly": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_driver_standings": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_supersession_standings": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_team_standings": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_time_trial_standings": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_time_trial_results": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "required": true, + "description": "The first race week of a season is 0." + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_qualify_results": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "required": true, + "description": "The first race week of a season is 0." + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/world_records": { + "get": { + "tags": [ + "stats" + ], + "parameters": [ + { + "in": "query", + "name": "car_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "track_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_year", + "schema": { + "description": "Limit best times to a given year.", + "type": "number" + }, + "description": "Limit best times to a given year." + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "description": "Limit best times to a given quarter; only applicable when year is used.", + "type": "number" + }, + "description": "Limit best times to a given quarter; only applicable when year is used." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/team/get": { + "get": { + "tags": [ + "team" + ], + "parameters": [ + { + "in": "query", + "name": "team_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "description": "For faster responses, only request when necessary.", + "type": "boolean" + }, + "description": "For faster responses, only request when necessary." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/team/membership": { + "get": { + "tags": [ + "team" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/time_attack/member_season_results": { + "get": { + "tags": [ + "time_attack" + ], + "parameters": [ + { + "in": "query", + "name": "ta_comp_season_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/track/assets": { + "get": { + "tags": [ + "track" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/track/get": { + "get": { + "tags": [ + "track" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + } + }, + "components": { + "schemas": { + "iracingCategory": { + "description": "Racing category.", + "anyOf": [ + { + "description": "Oval discipline", + "type": "string", + "const": "oval" + }, + { + "description": "Road discipline. Legacy, use `sports_car` or `formula_car` instead.", + "type": "string", + "const": "road" + }, + { + "description": "Dirt road discipline.", + "type": "string", + "const": "dirt_road" + }, + { + "description": "Dirt oval discipline.", + "type": "string", + "const": "dirt_oval" + }, + { + "description": "Sports car discipline.", + "type": "string", + "const": "sports_car" + }, + { + "description": "Formula car discipline.", + "type": "string", + "const": "formula_car" + } + ] + }, + "customerId": { + "description": "Numeric ID of a customer on iRacing.", + "type": "number" + }, + "iracingChartType": { + "description": "iRacing Chart Type", + "anyOf": [ + { + "description": "iRating", + "type": "number", + "const": 1 + }, + { + "description": "Time trial rating", + "type": "number", + "const": 2 + }, + { + "description": "License rating", + "type": "number", + "const": 3 + } + ] + }, + "iracingEventType": { + "description": "iRacing Event Type", + "anyOf": [ + { + "description": "Practice", + "type": "number", + "const": 2 + }, + { + "description": "Qualifying", + "type": "number", + "const": 3 + }, + { + "description": "Time trial", + "type": "number", + "const": 4 + }, + { + "description": "Race", + "type": "number", + "const": 5 + } + ] + }, + "iracingDivision": { + "description": "iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.", + "anyOf": [ + { + "description": "Division 1", + "type": "number", + "const": 0 + }, + { + "description": "Division 2", + "type": "number", + "const": 1 + }, + { + "description": "Division 3", + "type": "number", + "const": 2 + }, + { + "description": "Division 4", + "type": "number", + "const": 3 + }, + { + "description": "Division 5", + "type": "number", + "const": 4 + }, + { + "description": "Division 6", + "type": "number", + "const": 5 + }, + { + "description": "Division 7", + "type": "number", + "const": 6 + }, + { + "description": "Division 8", + "type": "number", + "const": 7 + }, + { + "description": "Division 9", + "type": "number", + "const": 8 + }, + { + "description": "Division 10", + "type": "number", + "const": 9 + }, + { + "description": "Rookie", + "type": "number", + "const": 10 + } + ] + }, + "iracingAPIResponse": { + "description": "Response from iRacing `/data` API.", + "type": "object", + "properties": { + "link": { + "description": "A link to the cached data", + "type": "string", + "format": "uri" + }, + "expires": { + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + } + }, + "required": [ + "link", + "expires" + ], + "additionalProperties": false + } + }, + "headers": { + "x-ratelimit-limit": { + "required": true, + "description": "The current total rate limit.", + "schema": { + "title": "Rate limit limit", + "description": "The current total rate limit.", + "type": "number" + } + }, + "x-ratelimit-remaining": { + "required": true, + "description": "How much of the rate limit you have remaining.", + "schema": { + "title": "Rate limit remaining", + "description": "How much of the rate limit you have remaining.", + "type": "number" + } + }, + "x-ratelimit-reset": { + "required": true, + "description": "When the rate limit will reset in epoch timestamp.", + "schema": { + "title": "Rate limit reset", + "description": "When the rate limit will reset in epoch timestamp.", + "type": "string" + } + } + }, + "responses": { + "Success": { + "description": "Success", + "headers": { + "x-ratelimit-limit": { + "$ref": "#/components/headers/x-ratelimit-limit" + }, + "x-ratelimit-remaining": { + "$ref": "#/components/headers/x-ratelimit-remaining" + }, + "x-ratelimit-reset": { + "$ref": "#/components/headers/x-ratelimit-reset" + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/iracingAPIResponse" + } + } + } + }, + "RateLimited": { + "description": "Rate limited", + "headers": { + "x-ratelimit-limit": { + "$ref": "#/components/headers/x-ratelimit-limit" + }, + "x-ratelimit-remaining": { + "$ref": "#/components/headers/x-ratelimit-remaining" + }, + "x-ratelimit-reset": { + "$ref": "#/components/headers/x-ratelimit-reset" + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error" + ], + "additionalProperties": false + } + } + } + }, + "Maintenance": { + "description": "Maintenance", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + }, + "note": { + "type": "string" + } + }, + "required": [ + "error" + ], + "additionalProperties": false + } + } + } + }, + "Unauthorized": { + "description": "Access token is missing or invalid.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "error" + ], + "additionalProperties": false + } + } + } + } + }, + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "JWT Authentication" + } + } + } +} \ No newline at end of file diff --git a/packages/api-client/openapitools.json b/packages/api-client/openapitools.json new file mode 100644 index 0000000..f052220 --- /dev/null +++ b/packages/api-client/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "7.17.0" + } +} diff --git a/packages/api-client/package.json b/packages/api-client/package.json new file mode 100644 index 0000000..7047e04 --- /dev/null +++ b/packages/api-client/package.json @@ -0,0 +1,12 @@ +{ + "name": "@iracing-data/api-client", + "version": "0.0.0-alpha.0", + "main": "dist/index.js", + "scripts": { + "codegen:openapi": "iracing-api-openapi -o ./openapi" + }, + "devDependencies": { + "@iracing-data/api-schema-to-openapi": "workspace:*", + "@openapitools/openapi-generator-cli": "^2.25.0" + } +} \ No newline at end of file diff --git a/packages/api-router/package.json b/packages/api-router/package.json index e6fb8fe..8d06574 100644 --- a/packages/api-router/package.json +++ b/packages/api-router/package.json @@ -8,6 +8,7 @@ }, "dependencies": { "@iracing-data/api": "workspace:*", + "@iracing-data/api-schema": "workspace:*", "axios": "^1.7.9", "better-call": "^1.0.26", "zod": "^4.1.12" diff --git a/packages/api-router/src/routes/auth/index.ts b/packages/api-router/src/routes/auth/index.ts index 6a8e0a9..8b1b513 100644 --- a/packages/api-router/src/routes/auth/index.ts +++ b/packages/api-router/src/routes/auth/index.ts @@ -1,14 +1,21 @@ import { createEndpoint } from "../utils"; import { z } from "zod"; +const AuthInputSchema = z.object({ + username: z.string(), + hashedPassword: z.string(), +}); + export const auth = createEndpoint( "/auth", { method: "POST", - body: z.object({ - username: z.string(), - hashedPassword: z.string(), - }), + body: AuthInputSchema, + metadata: { + $Infer: { + body: {} as z.infer, + }, + }, }, async ({ context: { iracing }, body }) => { return iracing.api.auth.auth(body); diff --git a/packages/api-router/src/routes/data/car-class.ts b/packages/api-router/src/routes/data/car-class.ts index 39c7f4f..b04b1b8 100644 --- a/packages/api-router/src/routes/data/car-class.ts +++ b/packages/api-router/src/routes/data/car-class.ts @@ -2,7 +2,48 @@ import { createEndpoint } from "../utils"; export const getCarClass = createEndpoint( "/data/carclass/get", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + responses: { + "200": { + description: "Success", + content: { + "application/json": { + schema: { + type: "object", + properties: { + link: { + type: "url", + description: "A link to the cached data response.", + }, + expires: { + type: "number", + description: + "Duration in seconds until the data is considered stale.", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.carClass.get(); return response.data; diff --git a/packages/api-router/src/routes/data/car.ts b/packages/api-router/src/routes/data/car.ts index ee6b37d..f7806c1 100644 --- a/packages/api-router/src/routes/data/car.ts +++ b/packages/api-router/src/routes/data/car.ts @@ -5,6 +5,21 @@ export const carAssets = createEndpoint( { method: "GET", requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.car.assets(); @@ -17,6 +32,21 @@ export const getCar = createEndpoint( { method: "GET", requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.car.get(); diff --git a/packages/api-router/src/routes/data/constants.ts b/packages/api-router/src/routes/data/constants.ts index b07ed7b..904c5be 100644 --- a/packages/api-router/src/routes/data/constants.ts +++ b/packages/api-router/src/routes/data/constants.ts @@ -2,7 +2,25 @@ import { createEndpoint } from "../utils"; export const categories = createEndpoint( "/data/constants/categories", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.constants.categories(); return response.data; @@ -11,7 +29,25 @@ export const categories = createEndpoint( export const divisions = createEndpoint( "/data/constants/divisions", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.constants.divisions(); return response.data; @@ -20,7 +56,25 @@ export const divisions = createEndpoint( export const eventTypes = createEndpoint( "/data/constants/event_types", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.constants.eventTypes(); return response.data; diff --git a/packages/api-router/src/routes/data/driver-stats.ts b/packages/api-router/src/routes/data/driver-stats.ts index cb8c799..35d094b 100644 --- a/packages/api-router/src/routes/data/driver-stats.ts +++ b/packages/api-router/src/routes/data/driver-stats.ts @@ -5,6 +5,7 @@ export const category = createEndpoint( "/data/driver_stats_by_category/:category", { method: "GET", + requireHeaders: true, query: z.object({ category: z.union([ z.literal("oval"), @@ -15,6 +16,21 @@ export const category = createEndpoint( z.literal("formula_car"), ]), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.driverStats.category(query); diff --git a/packages/api-router/src/routes/data/hosted.ts b/packages/api-router/src/routes/data/hosted.ts index 0bb49f8..0401461 100644 --- a/packages/api-router/src/routes/data/hosted.ts +++ b/packages/api-router/src/routes/data/hosted.ts @@ -5,9 +5,25 @@ export const combinedSessions = createEndpoint( "/data/hosted/combined_sessions", { method: "GET", + requireHeaders: true, query: z.object({ packageId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.hosted.combinedSessions(query); @@ -17,7 +33,25 @@ export const combinedSessions = createEndpoint( export const sessions = createEndpoint( "/data/hosted/sessions", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.hosted.sessions(); return response.data; diff --git a/packages/api-router/src/routes/data/league.ts b/packages/api-router/src/routes/data/league.ts index ae56c8e..c2b9192 100644 --- a/packages/api-router/src/routes/data/league.ts +++ b/packages/api-router/src/routes/data/league.ts @@ -5,6 +5,7 @@ export const directory = createEndpoint( "/data/league/directory", { method: "GET", + requireHeaders: true, query: z.object({ search: z.string().optional(), tag: z.string().optional(), @@ -25,6 +26,21 @@ export const directory = createEndpoint( .optional(), order: z.union([z.literal("asc"), z.literal("desc")]), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.directory(query); @@ -35,10 +51,26 @@ export const customerLeagueSessions = createEndpoint( "/data/league/cust_league_sessions", { method: "GET", + requireHeaders: true, query: z.object({ mine: z.boolean().optional(), packageId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.customerLeagueSessions(query); @@ -49,10 +81,26 @@ export const getLeague = createEndpoint( "/data/league/get", { method: "GET", + requireHeaders: true, query: z.object({ leagueId: z.number(), includeLicenses: z.boolean().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.get(query); @@ -63,10 +111,26 @@ export const getPointsSystem = createEndpoint( "/data/league/get_points_systems", { method: "GET", + requireHeaders: true, query: z.object({ leagueId: z.number(), seasonId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.getPointsSystems(query); @@ -77,10 +141,26 @@ export const leagueMembership = createEndpoint( "/data/league/membership", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.number().optional(), includeLeague: z.boolean().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.membership(query); @@ -91,10 +171,26 @@ export const leagueRoster = createEndpoint( "/data/league/roster", { method: "GET", + requireHeaders: true, query: z.object({ leagueId: z.number(), includeLicenses: z.boolean().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.roster(query); @@ -105,10 +201,26 @@ export const leagueSeasons = createEndpoint( "/data/league/seasons", { method: "GET", + requireHeaders: true, query: z.object({ leagueId: z.number(), retired: z.boolean().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.seasons(query); @@ -119,12 +231,28 @@ export const seasonStandings = createEndpoint( "/data/league/season_standings", { method: "GET", + requireHeaders: true, query: z.object({ leagueId: z.number(), seasonId: z.number(), carClassId: z.number().optional(), carId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.seasonStandings(query); @@ -135,11 +263,27 @@ export const seasonSessions = createEndpoint( "/data/league/season_sessions", { method: "GET", + requireHeaders: true, query: z.object({ leagueId: z.number(), seasonId: z.number(), resultsOnly: z.boolean().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { return iracing.api.data.league.seasonSessions(query); diff --git a/packages/api-router/src/routes/data/lookup.ts b/packages/api-router/src/routes/data/lookup.ts index 82696a0..409e922 100644 --- a/packages/api-router/src/routes/data/lookup.ts +++ b/packages/api-router/src/routes/data/lookup.ts @@ -5,6 +5,22 @@ export const countries = createEndpoint( "/data/lookup/countries", { method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.lookup.countries(); @@ -16,6 +32,22 @@ export const flairs = createEndpoint( "/data/lookup/flairs", { method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.lookup.flairs(); @@ -27,6 +59,22 @@ export const licenses = createEndpoint( "/data/lookup/licenses", { method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.lookup.licenses(); @@ -38,10 +86,26 @@ export const drivers = createEndpoint( "/data/lookup/drivers", { method: "GET", + requireHeaders: true, query: z.object({ searchTerm: z.string(), leagueId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.lookup.drivers(query); @@ -51,7 +115,26 @@ export const drivers = createEndpoint( export const getLookup = createEndpoint( "/data/lookup/get", - { method: "GET", query: z.record(z.string(), z.string()) }, + { + method: "GET", + requireHeaders: true, + query: z.record(z.string(), z.string()), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.lookup.get(query); return response.data; diff --git a/packages/api-router/src/routes/data/member.ts b/packages/api-router/src/routes/data/member.ts index a654122..e038d94 100644 --- a/packages/api-router/src/routes/data/member.ts +++ b/packages/api-router/src/routes/data/member.ts @@ -9,6 +9,21 @@ export const awards = createEndpoint( query: z.object({ customerId: z.coerce.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.member.awards(query); @@ -25,6 +40,21 @@ export const awardInstances = createEndpoint( customerId: z.coerce.number().optional(), awardId: z.number(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.member.awardInstances(query); @@ -58,7 +88,25 @@ export const awardInstances = createEndpoint( export const info = createEndpoint( "/data/member/info", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.member.info(); return response.data; @@ -66,7 +114,7 @@ export const info = createEndpoint( ); export const participationCredits = createEndpoint( - "/data/member/info", + "/data/member/participation_credits", { method: "GET" }, async ({ context: { iracing } }) => { const response = await iracing.api.data.member.participationCredits(); @@ -78,9 +126,25 @@ export const profile = createEndpoint( "/data/member/profile", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.coerce.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.member.profile(query); diff --git a/packages/api-router/src/routes/data/season.ts b/packages/api-router/src/routes/data/season.ts index 551c693..1d431d0 100644 --- a/packages/api-router/src/routes/data/season.ts +++ b/packages/api-router/src/routes/data/season.ts @@ -5,10 +5,26 @@ export const list = createEndpoint( "/data/season/list", { method: "GET", + requireHeaders: true, query: z.object({ seasonYear: z.number(), seasonQuarter: z.number(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.season.list(query); @@ -20,10 +36,26 @@ export const raceGuide = createEndpoint( "/data/season/race_guide", { method: "GET", + requireHeaders: true, query: z.object({ from: z.date(), includeEndAfterFrom: z.boolean().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.season.raceGuide(query); diff --git a/packages/api-router/src/routes/data/series.ts b/packages/api-router/src/routes/data/series.ts index de320cd..95464f5 100644 --- a/packages/api-router/src/routes/data/series.ts +++ b/packages/api-router/src/routes/data/series.ts @@ -3,7 +3,25 @@ import { z } from "zod"; export const seriesAssets = createEndpoint( "/data/series/assets", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.series.assets(); return response.data; @@ -12,7 +30,25 @@ export const seriesAssets = createEndpoint( export const getSeries = createEndpoint( "/data/series/get", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.series.get(); return response.data; @@ -23,9 +59,25 @@ export const pastSeasons = createEndpoint( "/data/series/past_seasons", { method: "GET", + requireHeaders: true, query: z.object({ seriesId: z.number(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.series.pastSeasons(query); @@ -37,11 +89,27 @@ export const seasons = createEndpoint( "/data/series/seasons", { method: "GET", + requireHeaders: true, query: z.object({ includeSeries: z.boolean().optional(), seasonYear: z.number().optional(), seasonQuarter: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.series.seasons(query); @@ -53,11 +121,27 @@ export const seasonList = createEndpoint( "/data/series/season_list", { method: "GET", + requireHeaders: true, query: z.object({ includeSeries: z.boolean().optional(), seasonYear: z.number().optional(), seasonQuarter: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.series.seasonList(query); @@ -69,9 +153,25 @@ export const seasonSchedule = createEndpoint( "/data/series/season_schedule", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.series.seasonSchedule(query); @@ -81,7 +181,25 @@ export const seasonSchedule = createEndpoint( export const statsSeries = createEndpoint( "/data/series/stats_series", - { method: "GET" }, + { + method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, async ({ context: { iracing } }) => { const response = await iracing.api.data.series.statsSeries(); return response.data; diff --git a/packages/api-router/src/routes/data/stats.ts b/packages/api-router/src/routes/data/stats.ts index 0e8d3bd..e10f3e3 100644 --- a/packages/api-router/src/routes/data/stats.ts +++ b/packages/api-router/src/routes/data/stats.ts @@ -1,4 +1,4 @@ -import { DivisionSchema } from "../schema"; +import { IRacingDivisionSchema } from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; import { z } from "zod"; @@ -6,10 +6,26 @@ export const memberBests = createEndpoint( "/data/stats/member_bests", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.number().optional(), carId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.memberBests(query); @@ -21,9 +37,25 @@ export const memberCareer = createEndpoint( "/data/stats/member_career", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.memberCareer(query); @@ -35,10 +67,26 @@ export const memberDivision = createEndpoint( "/data/stats/member_division", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), eventType: z.union([z.literal(4), z.literal(5)]), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.memberDivision(query); @@ -50,11 +98,27 @@ export const memberRecap = createEndpoint( "/data/stats/member_recap", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.number().optional(), year: z.number().optional(), season: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.memberRecap(query); @@ -66,9 +130,25 @@ export const memberRecentRaces = createEndpoint( "/data/stats/member_recent_races", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.memberRecentRaces(query); @@ -80,9 +160,25 @@ export const memberSummary = createEndpoint( "/data/stats/member_summary", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.memberSummary(query); @@ -94,9 +190,25 @@ export const memberYearly = createEndpoint( "/data/stats/member_yearly", { method: "GET", + requireHeaders: true, query: z.object({ customerId: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.memberYearly(query); @@ -108,12 +220,28 @@ export const seasonDriverStandings = createEndpoint( "/data/stats/season_driver_standings", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), carClassId: z.number(), raceWeekNumber: z.number().optional(), - division: DivisionSchema.optional(), + division: IRacingDivisionSchema.optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.seasonDriverStandings(query); @@ -125,12 +253,28 @@ export const seasonSupersessionStandings = createEndpoint( "/data/stats/season_supersession_standings", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), carClassId: z.number(), raceWeekNumber: z.number().optional(), - division: DivisionSchema.optional(), + division: IRacingDivisionSchema.optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = @@ -143,11 +287,27 @@ export const seasonTeamStandings = createEndpoint( "/data/stats/season_team_standings", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), carClassId: z.number(), raceWeekNumber: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.seasonTeamStandings(query); @@ -159,12 +319,28 @@ export const seasonTimeTrialStandings = createEndpoint( "/data/stats/season_time_trial_standings", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), carClassId: z.number(), raceWeekNumber: z.number().optional(), - division: DivisionSchema.optional(), + division: IRacingDivisionSchema.optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = @@ -177,12 +353,28 @@ export const seasonTimeTrialResults = createEndpoint( "/data/stats/season_time_trial_results", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), carClassId: z.number(), raceWeekNumber: z.number(), - division: DivisionSchema.optional(), + division: IRacingDivisionSchema.optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.seasonTimeTrialResults(query); @@ -194,12 +386,28 @@ export const seasonQualifyResults = createEndpoint( "/data/stats/season_qualify_results", { method: "GET", + requireHeaders: true, query: z.object({ seasonId: z.number(), carClassId: z.number(), raceWeekNumber: z.number(), - division: DivisionSchema.optional(), + division: IRacingDivisionSchema.optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.seasonQualifyResults(query); @@ -211,12 +419,28 @@ export const worldRecords = createEndpoint( "/data/stats/world_records", { method: "GET", + requireHeaders: true, query: z.object({ carId: z.number(), trackId: z.number(), seasonYear: z.number().optional(), seasonQuarter: z.number().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.stats.worldRecords(query); diff --git a/packages/api-router/src/routes/data/team.ts b/packages/api-router/src/routes/data/team.ts index c76d156..875f864 100644 --- a/packages/api-router/src/routes/data/team.ts +++ b/packages/api-router/src/routes/data/team.ts @@ -5,10 +5,26 @@ export const getTeam = createEndpoint( "/data/team/get", { method: "GET", + requireHeaders: true, query: z.object({ teamId: z.number(), includeLicenses: z.boolean().optional(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = await iracing.api.data.team.get(query); @@ -20,6 +36,22 @@ export const membership = createEndpoint( "/data/team/membership", { method: "GET", + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.team.membership(); diff --git a/packages/api-router/src/routes/data/time-attack.ts b/packages/api-router/src/routes/data/time-attack.ts index 86c42ee..e55e80e 100644 --- a/packages/api-router/src/routes/data/time-attack.ts +++ b/packages/api-router/src/routes/data/time-attack.ts @@ -9,6 +9,21 @@ export const memberSeasonResults = createEndpoint( query: z.object({ seasonId: z.number(), }), + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing }, query }) => { const response = diff --git a/packages/api-router/src/routes/data/track.ts b/packages/api-router/src/routes/data/track.ts index 1f3c75f..72cbe6d 100644 --- a/packages/api-router/src/routes/data/track.ts +++ b/packages/api-router/src/routes/data/track.ts @@ -5,6 +5,21 @@ export const trackAssets = createEndpoint( { method: "GET", requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.track.assets(); @@ -17,6 +32,21 @@ export const getTrack = createEndpoint( { method: "GET", requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, async ({ context: { iracing } }) => { const response = await iracing.api.data.track.get(); diff --git a/packages/api-router/src/routes/schema.ts b/packages/api-router/src/routes/schema.ts deleted file mode 100644 index cca0dff..0000000 --- a/packages/api-router/src/routes/schema.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { z } from "zod"; - -export const DivisionSchema = z.union([ - z.literal(0), - z.literal(1), - z.literal(2), - z.literal(3), - z.literal(4), - z.literal(5), - z.literal(6), - z.literal(7), - z.literal(8), - z.literal(9), - z.literal(10), -]); - -export type Division = z.infer; - -export const CategoryIdEnum = { - Oval: 1, - Road: 2, - DirtOval: 3, - DirtRoad: 4, -} as const; - -export type CategoryIdKey = keyof typeof CategoryIdEnum; -export type CategoryIdValue = (typeof CategoryIdEnum)[CategoryIdKey]; - -export const CategoryIdKeySchema = z.enum( - Object.keys(CategoryIdEnum) as [CategoryIdKey, ...CategoryIdKey[]] -); - -export const CategoryIdValueSchema = z.union( - (Object.values(CategoryIdEnum) as readonly number[]).map((n) => - z.literal(n) - ) as [z.ZodLiteral, ...z.ZodLiteral[]] -); - -export const CategoryIdEnumSchema = z.enum(CategoryIdEnum); -export type CategoryId = z.infer; - -export const ChartTypeEnum = { - iRating: 1, - TTRating: 2, - LicenseRating: 3, -} as const; - -export type ChartTypeKey = keyof typeof ChartTypeEnum; -export type ChartTypeValue = (typeof ChartTypeEnum)[ChartTypeKey]; - -export const ChartTypeKeySchema = z.enum( - Object.keys(ChartTypeEnum) as [ChartTypeKey, ...ChartTypeKey[]] -); - -export const ChartTypeValueSchema = z.union( - (Object.values(ChartTypeEnum) as readonly number[]).map((n) => - z.literal(n) - ) as [z.ZodLiteral, ...z.ZodLiteral[]] -); diff --git a/packages/api-schema/package.json b/packages/api-schema/package.json new file mode 100644 index 0000000..dab1b23 --- /dev/null +++ b/packages/api-schema/package.json @@ -0,0 +1,13 @@ +{ + "name": "@iracing-data/api-schema", + "version": "0.0.1-alpha.0", + "description": "Zod schema for iRacing `/data` API.", + "main": "dist/index.js", + "scripts": { + "build": "tsc --build tsconfig.build.json" + }, + "dependencies": { + "zod": "^4.1.12", + "zod-openapi": "^5.4.3" + } +} \ No newline at end of file diff --git a/packages/api-schema/src/index.ts b/packages/api-schema/src/index.ts new file mode 100644 index 0000000..686fbd9 --- /dev/null +++ b/packages/api-schema/src/index.ts @@ -0,0 +1 @@ +export * from "./schema"; diff --git a/packages/api-schema/src/schema.ts b/packages/api-schema/src/schema.ts new file mode 100644 index 0000000..5bb3cf9 --- /dev/null +++ b/packages/api-schema/src/schema.ts @@ -0,0 +1,1009 @@ +import { z } from "zod"; + +export const IRacingAccessTokenSchema = z.jwt().meta({ + description: "JWT ID Token from iRacing OAuth Service", + id: "iracingAccessToken", +}); + +export const IRacingRateLimitLimitHeaderKey = "x-ratelimit-limit"; +export const IRacingRateLimitLimitHeaderSchema = z.number().meta({ + title: "Rate limit limit", + description: "The current total rate limit.", + header: { + id: IRacingRateLimitLimitHeaderKey, + }, +}); + +export const IRacingRateLimitRemainingHeaderKey = "x-ratelimit-remaining"; +export const IRacingRateLimitRemainingHeaderSchema = z.number().meta({ + title: "Rate limit remaining", + description: "How much of the rate limit you have remaining.", + header: { + id: IRacingRateLimitRemainingHeaderKey, + }, +}); + +export const IRacingRateLimitResetHeaderKey = "x-ratelimit-reset"; +export const IRacingRateLimitResetHeaderSchema = z + .codec(z.int().min(0), z.date(), { + decode: (millis) => new Date(millis), + encode: (date) => date.getTime(), + }) + .meta({ + title: "Rate limit reset", + description: "When the rate limit will reset in epoch timestamp.", + header: { + id: IRacingRateLimitResetHeaderKey, + }, + }); + +export const IRacingRateLimitHeadersSchema = z + .object({ + [IRacingRateLimitLimitHeaderKey]: IRacingRateLimitLimitHeaderSchema, + [IRacingRateLimitRemainingHeaderKey]: IRacingRateLimitRemainingHeaderSchema, + [IRacingRateLimitResetHeaderKey]: IRacingRateLimitResetHeaderSchema, + }) + .meta({ + title: "Rate limit headers", + description: + "Headers included with every request, indicating current rate limit status for the requesting session.", + }); + +export const IRacingErrorResponseSchema = z.object({ + error: z.string(), + message: z.string().optional(), +}); + +export const IRacingMaintenanceResponseSchema = z.object({ + ...IRacingErrorResponseSchema.shape, + note: z.string().optional(), +}); + +export const IRacingCustomerIdSchema = z.coerce.number().meta({ + description: "Numeric ID of a customer on iRacing.", + id: "customerId", +}); + +export const IRacingEventTypePracticeSchema = z + .literal(2) + .meta({ description: "Practice" }); + +export const IRacingEventTypeQualifyingSchema = z + .literal(3) + .meta({ description: "Qualifying" }); + +export const IRacingEventTypeTimeTrialSchema = z + .literal(4) + .meta({ description: "Time trial" }); + +export const IRacingEventTypeRaceSchema = z + .literal(5) + .meta({ description: "Race" }); + +export const IRacingEventTypeSchema = z + .union([ + IRacingEventTypePracticeSchema, + IRacingEventTypeQualifyingSchema, + IRacingEventTypeTimeTrialSchema, + IRacingEventTypeRaceSchema, + ]) + .meta({ + id: "iracingEventType", + description: "iRacing Event Type", + }); + +export const IRacingChartTypeSchema = z + .union([ + z.literal(1).meta({ description: "iRating" }), + z.literal(2).meta({ description: "Time trial rating" }), + z.literal(3).meta({ description: "License rating" }), + ]) + .meta({ + id: "iracingChartType", + description: "iRacing Chart Type", + }); + +export const IRacingCategorySchema = z + .union([ + z.literal("oval").meta({ description: "Oval discipline" }), + z.literal("road").meta({ + description: + "Road discipline. Legacy, use `sports_car` or `formula_car` instead.", + }), + z.literal("dirt_road").meta({ description: "Dirt road discipline." }), + z.literal("dirt_oval").meta({ description: "Dirt oval discipline." }), + z.literal("sports_car").meta({ description: "Sports car discipline." }), + z.literal("formula_car").meta({ description: "Formula car discipline." }), + ]) + .meta({ + description: "Racing category.", + id: "iracingCategory", + }); + +export const IRacingDivisionSchema = z + .union([ + z.literal(0).meta({ + description: "Division 1", + }), + z.literal(1).meta({ + description: "Division 2", + }), + z.literal(2).meta({ + description: "Division 3", + }), + z.literal(3).meta({ + description: "Division 4", + }), + z.literal(4).meta({ + description: "Division 5", + }), + z.literal(5).meta({ + description: "Division 6", + }), + z.literal(6).meta({ + description: "Division 7", + }), + z.literal(7).meta({ + description: "Division 8", + }), + z.literal(8).meta({ + description: "Division 9", + }), + z.literal(9).meta({ + description: "Division 10", + }), + z.literal(10).meta({ + description: "Rookie", + }), + ]) + .meta({ + description: + "iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.", + id: "iracingDivision", + }); + +export const IRacingAPIResponseSchema = z + .object({ + link: z.url().meta({ description: "A link to the cached data" }), + expires: z.iso.datetime(), + }) + .meta({ + description: "Response from iRacing `/data` API.", + id: "iracingAPIResponse", + }); + +export const IRacingDriverStatsByCategoryPathSchema = z.object({ + category: IRacingCategorySchema, +}); + +export const IRacingHostedCombinedSessionsParametersSchema = z.object({ + package_id: z.number().optional().meta({ + description: + "If set, return only sessions using this car or track package ID.", + }), +}); + +export const IRacingLeagueCustomerSessionsParametersSchema = z.object({ + mine: z + .boolean() + .optional() + .meta({ + description: "If true, return only sessions created by this user.", + }), + package_id: z.number().optional().meta({ + description: + "If set, return only sessions using this car or track package ID.", + }), +}); + +export const IRacingLeagueDirectoryParametersSchema = z.object({ + search: z.string().optional().meta({ + description: + "Will search against league name, description, owner, and league ID.", + }), + tag: z + .string() + .optional() + .meta({ description: "One or more tags, comma-separated." }), + restrict_to_member: z + .boolean() + .optional() + .meta({ + description: + "If true include only leagues for which customer is a member.", + }), + restrict_to_recruiting: z + .boolean() + .optional() + .meta({ + description: "If true include only leagues which are recruiting.", + }), + restrict_to_friends: z + .boolean() + .optional() + .meta({ description: "If true include only leagues owned by a friend." }), + restrict_to_watched: z + .boolean() + .optional() + .meta({ + description: "If true include only leagues owned by a watched member.", + }), + minimum_roster_count: z + .number() + .optional() + .meta({ + description: + "If set include leagues with at least this number of members.", + }), + maximum_roster_count: z + .number() + .optional() + .meta({ + description: + "If set include leagues with no more than this number of members.", + }), + lowerbound: z + .number() + .optional() + .meta({ description: "First row of results to return. Defaults to 1." }), + upperbound: z + .number() + .optional() + .meta({ + description: + "Last row of results to return. Defaults to lowerbound + 39.", + }), + sort: z.string().optional().meta({ + description: + "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.", + }), + order: z + .string() + .optional() + .meta({ description: "One of asc or desc. Defaults to asc." }), +}); + +export const IRacingLeagueGetParametersSchema = z.object({ + league_id: z.number(), + include_licenses: z + .boolean() + .optional() + .meta({ + description: "For faster responses, only request when necessary.", + }), +}); + +export const IRacingLeagueGetPointsSystemsParametersSchema = z.object({ + league_id: z.number(), + season_id: z.number().optional().meta({ + description: + "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.", + }), +}); + +export const IRacingLeagueMembershipParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: + "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.", + }), + include_league: z.boolean().optional(), +}); + +export const IRacingLeagueRosterParametersSchema = z.object({ + league_id: z.number(), + include_licenses: z + .boolean() + .optional() + .meta({ + description: "For faster responses, only request when necessary.", + }), +}); + +export const IRacingLeagueSeasonsParametersSchema = z.object({ + league_id: z.number(), + retired: z + .boolean() + .optional() + .meta({ + description: "If true include seasons which are no longer active.", + }), +}); + +export const IRacingLeagueSeasonStandingsParametersSchema = z.object({ + league_id: z.number(), + season_id: z.number(), + car_class_id: z.number().optional(), + car_id: z.number().optional().meta({ + description: + "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.", + }), +}); + +export const IRacingLeagueSeasonSessionsParametersSchema = z.object({ + league_id: z.number(), + season_id: z.number(), + results_only: z + .boolean() + .optional() + .meta({ + description: + "If true include only sessions for which results are available.", + }), +}); + +export const IRacingLookupDriversParametersSchema = z.object({ + search_term: z + .string() + .meta({ description: "A cust_id or partial name for which to search." }), + league_id: z + .number() + .optional() + .meta({ + description: "Narrow the search to the roster of the given league.", + }), +}); + +export const IRacingMemberAwardsParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), +}); + +export const IRacingMemberAwardInstancesParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), + award_id: z.number(), +}); + +export const IRacingMemberChartDataParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), + category_id: z + .number() + .meta({ description: "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road" }), + chart_type: IRacingChartTypeSchema.meta({ + description: "1 - iRating; 2 - TT Rating; 3 - License/SR", + }), +}); + +export const IRacingMemberGetParametersSchema = z.object({ + cust_ids: z.array(z.number()).meta({ description: "?cust_ids=2,3,4" }), + include_licenses: z.boolean().optional(), +}); + +export const IRacingMemberProfileParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), +}); + +export const IRacingResultsGetParametersSchema = z.object({ + subsession_id: z.number(), + include_licenses: z.boolean().optional(), +}); + +export const IRacingResultsEventLogParametersSchema = z.object({ + subsession_id: z.number(), + simsession_number: z + .number() + .meta({ + description: "The main event is 0; the preceding event is -1, and so on.", + }), +}); + +export const IRacingResultsLapChartDataParametersSchema = z.object({ + subsession_id: z.number(), + simsession_number: z + .number() + .meta({ + description: "The main event is 0; the preceding event is -1, and so on.", + }), +}); + +export const IRacingResultsLapDataParametersSchema = z.object({ + subsession_id: z.number(), + simsession_number: z + .number() + .meta({ + description: "The main event is 0; the preceding event is -1, and so on.", + }), + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: + "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.", + }), + team_id: z + .number() + .optional() + .meta({ description: "Required if the subsession was a team event." }), +}); + +export const IRacingResultsSearchHostedParametersSchema = z.object({ + start_range_begin: z.iso + .datetime() + .optional() + .meta({ + description: + 'Session start times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + start_range_end: z.iso + .datetime() + .optional() + .meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.', + }), + finish_range_begin: z.iso + .datetime() + .optional() + .meta({ + description: + 'Session finish times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + finish_range_end: z.iso + .datetime() + .optional() + .meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.', + }), + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: + "The participant's customer ID. Ignored if team_id is supplied.", + }), + team_id: z + .number() + .optional() + .meta({ + description: + "The team ID to search for. Takes priority over cust_id if both are supplied.", + }), + host_cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "The host's customer ID.", + }), + session_name: z + .string() + .optional() + .meta({ description: "Part or all of the session's name." }), + league_id: z + .number() + .optional() + .meta({ description: "Include only results for the league with this ID." }), + league_season_id: z + .number() + .optional() + .meta({ + description: "Include only results for the league season with this ID.", + }), + car_id: z + .number() + .optional() + .meta({ description: "One of the cars used by the session." }), + track_id: z + .number() + .optional() + .meta({ description: "The ID of the track used by the session." }), + category_ids: z + .array(z.number()) + .optional() + .meta({ + description: + "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + }), +}); + +export const IRacingResultsSearchSeriesParametersSchema = z.object({ + season_year: z + .number() + .optional() + .meta({ description: "Required when using season_quarter." }), + season_quarter: z + .number() + .optional() + .meta({ description: "Required when using season_year." }), + start_range_begin: z.iso + .datetime() + .optional() + .meta({ + description: + 'Session start times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + start_range_end: z.iso + .datetime() + .optional() + .meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.', + }), + finish_range_begin: z.iso + .datetime() + .optional() + .meta({ + description: + 'Session finish times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + finish_range_end: z.iso + .datetime() + .optional() + .meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.', + }), + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: + "Include only sessions in which this customer participated. Ignored if team_id is supplied.", + }), + team_id: z + .number() + .optional() + .meta({ + description: + "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", + }), + series_id: z + .number() + .optional() + .meta({ description: "Include only sessions for series with this ID." }), + race_week_num: z + .number() + .optional() + .meta({ description: "Include only sessions with this race week number." }), + official_only: z + .boolean() + .optional() + .meta({ + description: + "If true, include only sessions earning championship points. Defaults to all.", + }), + event_types: z + .array(z.number()) + .optional() + .meta({ + description: + "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + }), + category_ids: z + .array(z.number()) + .optional() + .meta({ + description: + "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + }), +}); + +export const IRacingResultsSeasonResultsParametersSchema = z.object({ + season_id: z.number(), + event_type: IRacingEventTypeSchema.optional().meta({ + description: + "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race", + }), + race_week_num: z + .number() + .optional() + .meta({ description: "The first race week of a season is 0." }), +}); + +export const IRacingSeasonListParametersSchema = z.object({ + season_year: z.number(), + season_quarter: z.number(), +}); + +export const IRacingSeasonRaceGuideParametersSchema = z.object({ + from: z.iso.datetime({ offset: true }).optional().meta({ + description: + "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.", + }), + include_end_after_from: z + .boolean() + .optional() + .meta({ + description: "Include sessions which start before 'from' but end after.", + }), +}); + +export const IRacingSeasonSpectatorSubsessionidsParametersSchema = z.object({ + event_types: z + .array(IRacingEventTypeSchema) + .optional() + .meta({ + description: + "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + }), +}); + +export const IRacingSeasonSpectatorSubsessionidsDetailParametersSchema = + z.object({ + event_types: z + .array(IRacingEventTypeSchema) + .optional() + .meta({ + description: + "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + }), + season_ids: z + .array(z.number()) + .optional() + .meta({ + description: + "Seasons to include in the search. Defaults to all. ?season_ids=513,937", + }), + }); + +export const IRacingSeriesPastSeasonsParametersSchema = z.object({ + series_id: z.number(), +}); + +export const IRacingSeriesSeasonsParametersSchema = z.object({ + include_series: z.boolean().optional(), + season_year: z + .number() + .optional() + .meta({ + description: + "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + }), + season_quarter: z + .number() + .optional() + .meta({ + description: + "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + }), +}); + +export const IRacingSeriesSeasonListParametersSchema = z.object({ + include_series: z.boolean().optional(), + season_year: z.number().optional(), + season_quarter: z.number().optional(), +}); + +export const IRacingSeriesSeasonScheduleParametersSchema = z.object({ + season_id: z.number(), +}); + +export const IRacingStatsMemberBestsParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), + car_id: z + .number() + .optional() + .meta({ + description: + "First call should exclude car_id; use cars_driven list in return for subsequent calls.", + }), +}); + +export const IRacingStatsMemberCareerParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), +}); + +export const IRacingStatsMemberDivisionParametersSchema = z.object({ + season_id: z.number(), + event_type: z + .union([IRacingEventTypeTimeTrialSchema, IRacingEventTypeRaceSchema]) + .meta({ + description: + "The event type code for the division type: 4 - Time Trial; 5 - Race", + }), +}); + +export const IRacingStatsMemberRecapParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), + year: z + .union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]) + .optional() + .meta({ + description: + "Season year; if not supplied the current calendar year (UTC) is used.", + }), + season: z + .number() + .optional() + .meta({ + description: + "Season (quarter) within the year; if not supplied the recap will be for the entire year.", + }), +}); + +export const IRacingStatsMemberRecentRacesParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), +}); + +export const IRacingStatsMemberSummaryParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), +}); + +export const IRacingStatsMemberYearlyParametersSchema = z.object({ + cust_id: IRacingCustomerIdSchema.optional().meta({ + description: "Defaults to the authenticated member.", + }), +}); + +export const IRacingStatsSeasonDriverStandingsParametersSchema = z.object({ + season_id: z.number(), + car_class_id: z.number(), + division: IRacingDivisionSchema.optional(), + race_week_num: z + .number() + .optional() + .meta({ description: "The first race week of a season is 0." }), +}); + +export const IRacingStatsSeasonSupersessionStandingsParametersSchema = z.object( + { + season_id: z.number(), + car_class_id: z.number(), + division: IRacingDivisionSchema.optional(), + race_week_num: z + .number() + .optional() + .meta({ description: "The first race week of a season is 0." }), + } +); + +export const IRacingStatsSeasonTeamStandingsParametersSchema = z.object({ + season_id: z.number(), + car_class_id: z.number(), + race_week_num: z + .number() + .optional() + .meta({ description: "The first race week of a season is 0." }), +}); + +export const IRacingStatsSeasonTTStandingsParametersSchema = z.object({ + season_id: z.number(), + car_class_id: z.number(), + division: IRacingDivisionSchema.optional(), + race_week_num: z + .number() + .optional() + .meta({ description: "The first race week of a season is 0." }), +}); + +export const IRacingStatsSeasonTTResultsParametersSchema = z.object({ + season_id: z.number(), + car_class_id: z.number(), + race_week_num: z + .number() + .meta({ description: "The first race week of a season is 0." }), + division: IRacingDivisionSchema.optional(), +}); + +export const IRacingStatsSeasonQualifyResultsParametersSchema = z.object({ + season_id: z.number(), + car_class_id: z.number(), + race_week_num: z + .number() + .meta({ description: "The first race week of a season is 0." }), + division: IRacingDivisionSchema.optional(), +}); + +export const IRacingStatsWorldRecordsParametersSchema = z.object({ + car_id: z.number(), + track_id: z.number(), + season_year: z + .number() + .optional() + .meta({ description: "Limit best times to a given year." }), + season_quarter: z + .number() + .optional() + .meta({ + description: + "Limit best times to a given quarter; only applicable when year is used.", + }), +}); + +export const IRacingTeamGetParametersSchema = z.object({ + team_id: z.number(), + include_licenses: z + .boolean() + .optional() + .meta({ + description: "For faster responses, only request when necessary.", + }), +}); + +export const IRacingTimeAttackMemberSeasonResultsParametersSchema = z.object({ + ta_comp_season_id: z.number(), +}); + +/** + * Types + */ + +export type IRacingAccessToken = z.infer; +export type IRacingRateLimitLimitHeader = z.infer< + typeof IRacingRateLimitLimitHeaderSchema +>; +export type IRacingRateLimitRemainingHeader = z.infer< + typeof IRacingRateLimitRemainingHeaderSchema +>; +export type IRacingRateLimitResetHeader = z.infer< + typeof IRacingRateLimitResetHeaderSchema +>; +export type IRacingRateLimitHeaders = z.infer< + typeof IRacingRateLimitHeadersSchema +>; +export type IRacingCustomerId = z.infer; +export type IRacingCategory = z.infer; +export type IRacingDivision = z.infer; +export type IRacingAPIResponse = z.infer; + +export type IRacingErrorResponse = z.infer; +export type IRacingMaintenanceResponse = z.infer< + typeof IRacingMaintenanceResponseSchema +>; + +export type IRacingEventTypePractice = z.infer< + typeof IRacingEventTypePracticeSchema +>; +export type IRacingEventTypeQualifying = z.infer< + typeof IRacingEventTypeQualifyingSchema +>; +export type IRacingEventTypeTimeTrial = z.infer< + typeof IRacingEventTypeTimeTrialSchema +>; +export type IRacingEventTypeRace = z.infer; +export type IRacingEventType = z.infer; + +export type IRacingChartType = z.infer; + +export type IRacingHostedCombinedSessionsParameters = z.infer< + typeof IRacingHostedCombinedSessionsParametersSchema +>; +export type IRacingLeagueCustomerSessionsParameters = z.infer< + typeof IRacingLeagueCustomerSessionsParametersSchema +>; +export type IRacingLeagueDirectoryParameters = z.infer< + typeof IRacingLeagueDirectoryParametersSchema +>; +export type IRacingLeagueGetParameters = z.infer< + typeof IRacingLeagueGetParametersSchema +>; +export type IRacingLeagueGetPointsSystemsParameters = z.infer< + typeof IRacingLeagueGetPointsSystemsParametersSchema +>; +export type IRacingLeagueMembershipParameters = z.infer< + typeof IRacingLeagueMembershipParametersSchema +>; +export type IRacingLeagueRosterParameters = z.infer< + typeof IRacingLeagueRosterParametersSchema +>; +export type IRacingLeagueSeasonsParameters = z.infer< + typeof IRacingLeagueSeasonsParametersSchema +>; +export type IRacingLeagueSeasonStandingsParameters = z.infer< + typeof IRacingLeagueSeasonStandingsParametersSchema +>; +export type IRacingLeagueSeasonSessionsParameters = z.infer< + typeof IRacingLeagueSeasonSessionsParametersSchema +>; + +export type IRacingLookupDriversParameters = z.infer< + typeof IRacingLookupDriversParametersSchema +>; + +export type IRacingMemberAwardsParameters = z.infer< + typeof IRacingMemberAwardsParametersSchema +>; +export type IRacingMemberAwardInstancesParameters = z.infer< + typeof IRacingMemberAwardInstancesParametersSchema +>; +export type IRacingMemberChartDataParameters = z.infer< + typeof IRacingMemberChartDataParametersSchema +>; +export type IRacingMemberGetParameters = z.infer< + typeof IRacingMemberGetParametersSchema +>; +export type IRacingMemberProfileParameters = z.infer< + typeof IRacingMemberProfileParametersSchema +>; + +export type IRacingResultsGetParameters = z.infer< + typeof IRacingResultsGetParametersSchema +>; +export type IRacingResultsEventLogParameters = z.infer< + typeof IRacingResultsEventLogParametersSchema +>; +export type IRacingResultsLapChartDataParameters = z.infer< + typeof IRacingResultsLapChartDataParametersSchema +>; +export type IRacingResultsLapDataParameters = z.infer< + typeof IRacingResultsLapDataParametersSchema +>; +export type IRacingResultsSearchHostedParameters = z.infer< + typeof IRacingResultsSearchHostedParametersSchema +>; +export type IRacingResultsSearchSeriesParameters = z.infer< + typeof IRacingResultsSearchSeriesParametersSchema +>; +export type IRacingResultsSeasonResultsParameters = z.infer< + typeof IRacingResultsSeasonResultsParametersSchema +>; + +export type IRacingSeasonListParameters = z.infer< + typeof IRacingSeasonListParametersSchema +>; +export type IRacingSeasonRaceGuideParameters = z.infer< + typeof IRacingSeasonRaceGuideParametersSchema +>; +export type IRacingSeasonSpectatorSubsessionidsParameters = z.infer< + typeof IRacingSeasonSpectatorSubsessionidsParametersSchema +>; +export type IRacingSeasonSpectatorSubsessionidsDetailParameters = z.infer< + typeof IRacingSeasonSpectatorSubsessionidsDetailParametersSchema +>; + +export type IRacingSeriesPastSeasonsParameters = z.infer< + typeof IRacingSeriesPastSeasonsParametersSchema +>; +export type IRacingSeriesSeasonsParameters = z.infer< + typeof IRacingSeriesSeasonsParametersSchema +>; +export type IRacingSeriesSeasonListParameters = z.infer< + typeof IRacingSeriesSeasonListParametersSchema +>; +export type IRacingSeriesSeasonScheduleParameters = z.infer< + typeof IRacingSeriesSeasonScheduleParametersSchema +>; + +export type IRacingStatsMemberBestsParameters = z.infer< + typeof IRacingStatsMemberBestsParametersSchema +>; +export type IRacingStatsMemberCareerParameters = z.infer< + typeof IRacingStatsMemberCareerParametersSchema +>; +export type IRacingStatsMemberDivisionParameters = z.infer< + typeof IRacingStatsMemberDivisionParametersSchema +>; +export type IRacingStatsMemberRecapParameters = z.infer< + typeof IRacingStatsMemberRecapParametersSchema +>; +export type IRacingStatsMemberRecentRacesParameters = z.infer< + typeof IRacingStatsMemberRecentRacesParametersSchema +>; +export type IRacingStatsMemberSummaryParameters = z.infer< + typeof IRacingStatsMemberSummaryParametersSchema +>; +export type IRacingStatsMemberYearlyParameters = z.infer< + typeof IRacingStatsMemberYearlyParametersSchema +>; +export type IRacingStatsSeasonDriverStandingsParameters = z.infer< + typeof IRacingStatsSeasonDriverStandingsParametersSchema +>; +export type IRacingStatsSeasonSupersessionStandingsParameters = z.infer< + typeof IRacingStatsSeasonSupersessionStandingsParametersSchema +>; +export type IRacingStatsSeasonTeamStandingsParameters = z.infer< + typeof IRacingStatsSeasonTeamStandingsParametersSchema +>; +export type IRacingStatsSeasonTTStandingsParameters = z.infer< + typeof IRacingStatsSeasonTTStandingsParametersSchema +>; +export type IRacingStatsSeasonTTResultsParameters = z.infer< + typeof IRacingStatsSeasonTTResultsParametersSchema +>; +export type IRacingStatsSeasonQualifyResultsParameters = z.infer< + typeof IRacingStatsSeasonQualifyResultsParametersSchema +>; +export type IRacingStatsWorldRecordsParameters = z.infer< + typeof IRacingStatsWorldRecordsParametersSchema +>; + +export type IRacingTeamGetParameters = z.infer< + typeof IRacingTeamGetParametersSchema +>; +export type IRacingTimeAttackMemberSeasonResultsParameters = z.infer< + typeof IRacingTimeAttackMemberSeasonResultsParametersSchema +>; diff --git a/packages/api-schema/tsconfig.build.json b/packages/api-schema/tsconfig.build.json new file mode 100644 index 0000000..24068a8 --- /dev/null +++ b/packages/api-schema/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noUnusedLocals": true, + "module": "nodenext", + "moduleResolution": "nodenext" + }, + "exclude": ["node_modules", "dist", "scripts"] +} diff --git a/packages/api-schema/tsconfig.json b/packages/api-schema/tsconfig.json new file mode 100644 index 0000000..5455dae --- /dev/null +++ b/packages/api-schema/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/packages/helpers/api-schema-to-openapi/README.md b/packages/helpers/api-schema-to-openapi/README.md new file mode 100644 index 0000000..e9c9701 --- /dev/null +++ b/packages/helpers/api-schema-to-openapi/README.md @@ -0,0 +1,11 @@ +# @iracing-data/api-schema-to-openapi-schema + +Helper function to generate OpenAPI (Swagger) spec from [iRacing API zod schema](../../api-schema/). + +## Installation + +_Coming soon_ + +## Usage + +_Coming soon_ diff --git a/packages/helpers/api-schema-to-openapi/package.json b/packages/helpers/api-schema-to-openapi/package.json new file mode 100644 index 0000000..17e71f7 --- /dev/null +++ b/packages/helpers/api-schema-to-openapi/package.json @@ -0,0 +1,21 @@ +{ + "name": "@iracing-data/api-schema-to-openapi", + "version": "0.0.0-alpha.0", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "bin": { + "iracing-api-openapi": "dist/cli.js" + }, + "scripts": { + "build": "tsc --build tsconfig.build.json" + }, + "dependencies": { + "@iracing-data/api-schema": "workspace:*", + "commander": "^14.0.2", + "zod": "^4.1.12", + "zod-openapi": "^5.4.3" + }, + "devDependencies": { + "@commander-js/extra-typings": "^14.0.0" + } +} \ No newline at end of file diff --git a/packages/helpers/api-schema-to-openapi/src/cli.ts b/packages/helpers/api-schema-to-openapi/src/cli.ts new file mode 100644 index 0000000..5024463 --- /dev/null +++ b/packages/helpers/api-schema-to-openapi/src/cli.ts @@ -0,0 +1,24 @@ +#!/usr/bin/env node + +import path from "node:path"; +import { Command } from "@commander-js/extra-typings"; +import { generateOpenAPISpec } from "./"; + +const program = new Command("iracing-api-openapi") + .requiredOption("-o, --output ", "Output path") + .option( + "-f, --file ", + "The name of the output file. Defaults to 'openapi.json'" + ) + .action(async (_, command) => { + const { output, file = "openapi.json" } = command.optsWithGlobals(); + + await generateOpenAPISpec({ + fileName: file, + outputDir: output, + }); + + console.log("Output schema to", path.join(output, file)); + }); + +program.parse(); diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts new file mode 100644 index 0000000..f8f1853 --- /dev/null +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -0,0 +1,1778 @@ +import fs from "node:fs"; +import path from "node:path"; +import { + IRacingAPIResponseSchema, + IRacingDriverStatsByCategoryPathSchema, + IRacingErrorResponseSchema, + IRacingHostedCombinedSessionsParametersSchema, + IRacingLeagueCustomerSessionsParametersSchema, + IRacingLeagueDirectoryParametersSchema, + IRacingLeagueGetParametersSchema, + IRacingLeagueGetPointsSystemsParametersSchema, + IRacingLeagueMembershipParametersSchema, + IRacingLeagueRosterParametersSchema, + IRacingLeagueSeasonSessionsParametersSchema, + IRacingLeagueSeasonsParametersSchema, + IRacingLeagueSeasonStandingsParametersSchema, + IRacingLookupDriversParametersSchema, + IRacingMaintenanceResponseSchema, + IRacingMemberAwardInstancesParametersSchema, + IRacingMemberAwardsParametersSchema, + IRacingMemberChartDataParametersSchema, + IRacingMemberGetParametersSchema, + IRacingMemberProfileParametersSchema, + IRacingRateLimitHeadersSchema, + IRacingRateLimitLimitHeaderSchema, + IRacingRateLimitRemainingHeaderSchema, + IRacingRateLimitResetHeaderSchema, + IRacingResultsEventLogParametersSchema, + IRacingResultsGetParametersSchema, + IRacingResultsLapChartDataParametersSchema, + IRacingResultsLapDataParametersSchema, + IRacingResultsSearchHostedParametersSchema, + IRacingResultsSearchSeriesParametersSchema, + IRacingResultsSeasonResultsParametersSchema, + IRacingSeasonListParametersSchema, + IRacingSeasonRaceGuideParametersSchema, + IRacingSeriesPastSeasonsParametersSchema, + IRacingSeriesSeasonListParametersSchema, + IRacingSeriesSeasonScheduleParametersSchema, + IRacingSeriesSeasonsParametersSchema, + IRacingStatsMemberBestsParametersSchema, + IRacingStatsMemberCareerParametersSchema, + IRacingStatsMemberDivisionParametersSchema, + IRacingStatsMemberRecapParametersSchema, + IRacingStatsMemberRecentRacesParametersSchema, + IRacingStatsMemberSummaryParametersSchema, + IRacingStatsMemberYearlyParametersSchema, + IRacingStatsSeasonDriverStandingsParametersSchema, + IRacingStatsSeasonQualifyResultsParametersSchema, + IRacingStatsSeasonSupersessionStandingsParametersSchema, + IRacingStatsSeasonTeamStandingsParametersSchema, + IRacingStatsSeasonTTResultsParametersSchema, + IRacingStatsSeasonTTStandingsParametersSchema, + IRacingStatsWorldRecordsParametersSchema, + IRacingTeamGetParametersSchema, + IRacingTimeAttackMemberSeasonResultsParametersSchema, +} from "@iracing-data/api-schema"; +import { createDocument } from "zod-openapi"; + +export interface GenerateOpenAPISpecOptions { + outputDir?: string; + fileName?: string; +} + +export async function generateOpenAPISpec({ + outputDir = __dirname, + fileName = "openapi.json", +}: GenerateOpenAPISpecOptions) { + const outputPath = path.join(outputDir, fileName); + + // Create the output dir if it doesn't exist + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + const document = createDocument({ + openapi: "3.1.1", + info: { + title: "iRacing `/data` API", + version: "0.0.1", + }, + servers: [{ url: "https://members-ng.iracing.com/" }], + components: { + headers: { + rateLimitLimit: IRacingRateLimitLimitHeaderSchema, + rateLimitRemaining: IRacingRateLimitRemainingHeaderSchema, + rateLimitReset: IRacingRateLimitResetHeaderSchema, + }, + responses: { + Success: { + description: "Success", + headers: IRacingRateLimitHeadersSchema, + content: { + "application/json": { + schema: IRacingAPIResponseSchema, + }, + }, + }, + RateLimited: { + description: "Rate limited", + headers: IRacingRateLimitHeadersSchema, + content: { + "application/json": { + schema: IRacingErrorResponseSchema, + }, + }, + }, + Maintenance: { + description: "Maintenance", + content: { + "application/json": { + schema: IRacingMaintenanceResponseSchema, + }, + }, + }, + Unauthorized: { + description: "Access token is missing or invalid.", + content: { + "application/json": { + schema: IRacingErrorResponseSchema, + }, + }, + }, + }, + securitySchemes: { + bearerAuth: { + type: "http", + scheme: "bearer", + bearerFormat: "JWT", + description: "JWT Authentication", + }, + }, + }, + security: [ + { + bearerAuth: [], + }, + ], + tags: [ + { + name: "doc", + description: "A documentation endpoint.", + }, + { + name: "car", + description: "Car service endpoint.", + }, + { + name: "carclass", + description: "Car class service endpoint.", + }, + { name: "constants", description: "Constants service endpoint." }, + { name: "driver_stats", description: "Driver stats service endpoint." }, + { name: "hosted", description: "Hosted service endpoint." }, + { name: "league", description: "League service endpoint" }, + { + name: "lookup", + description: + "Lookup endpoints for static reference data (countries, licenses, drivers, etc.)", + }, + { + name: "member", + description: + "Member profile and related endpoints (profile, awards, participation credits).", + }, + { + name: "results", + description: + "Race and session result endpoints (lap data, event logs, season results).", + }, + { + name: "season", + description: + "Season-related endpoints (season lists, race guides, schedules).", + }, + { + name: "series", + description: "Series endpoints (series metadata, seasons, assets).", + }, + { + name: "stats", + description: + "Statistical endpoints and summaries for members and seasons.", + }, + { + name: "team", + description: "Team endpoints (team details, membership).", + }, + { + name: "time_attack", + description: + "Time attack specific endpoints and member season results.", + }, + { name: "track", description: "Track metadata and asset endpoints." }, + ], + paths: { + "/data/doc": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/carclass": { + get: { + tags: ["doc", "carclass"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/carclass/get": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/car": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/car/assets": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/car/get": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/constants": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/constants/categories": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/constants/divisions": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/constants/event_types": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category/oval": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category/sports_car": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category/formula_car": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category/road": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category/dirt_oval": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category/dirt_road": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/hosted": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/hosted/combined_sessions": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/hosted/sessions": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/cust_league_sessions": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/directory": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/get": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/get_points_systems": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/membership": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/roster": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/seasons": { + get: { + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/season_standings": { + get: { + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/league/season_sessions": { + get: { + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/lookup": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/lookup/countries": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/lookup/drivers": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/lookup/flairs": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/lookup/get": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/lookup/licenses": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member/awards": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member/award_instances": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member/chart_data": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member/get": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member/info": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member/participation_credits": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/member/profile": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results/get": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results/event_log": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results/lap_chart_data": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results/lap_data": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results/search_hosted": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results/search_series": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/results/season_results": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/season": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/season/list": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/season/race_guide": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/season/spectator_subsessionids": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/season/spectator_subsessionids_detail": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series/assets": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series/get": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series/past_seasons": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series/seasons": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series/season_list": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series/season_schedule": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/series/stats_series": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/member_bests": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/member_career": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/member_division": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/member_recap": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/member_recent_races": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/member_summary": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/member_yearly": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/season_driver_standings": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/season_supersession_standings": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/season_team_standings": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/season_tt_standings": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/season_tt_results": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/season_qualify_results": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/stats/world_records": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/team": { + get: { + tags: ["doc"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/team/get": { + get: { + tags: ["doc", "team"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/team/membership": { + get: { + tags: ["doc", "team"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/time_attack": { + get: { + tags: ["doc", "time_attack"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/time_attack/member_season_results": { + get: { + tags: ["doc", "time_attack"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/track": { + get: { + tags: ["doc", "track"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/track/assets": { + get: { + tags: ["doc", "track"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/track/get": { + get: { + tags: ["doc", "track"], + responses: { + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/carclass/get": { + get: { + operationId: "getCarClass", + summary: "Gets car classes.", + tags: ["carclass"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/car/assets": { + get: { + description: + "image paths are relative to https://images-static.iracing.com/", + tags: ["car"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/car/get": { + get: { + tags: ["car"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/constants/categories": { + get: { + description: "Constant; returned directly as an array of objects", + tags: ["constants"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/constants/divisions": { + get: { + description: "Constant; returned directly as an array of objects", + tags: ["constants"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/constants/event_types": { + get: { + description: "Constant; returned directly as an array of objects", + tags: ["constants"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/driver_stats_by_category/{category}": { + get: { + requestParams: { + path: IRacingDriverStatsByCategoryPathSchema, + }, + tags: ["driver_stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/hosted/combined_sessions": { + get: { + description: + "Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.", + requestParams: { + query: IRacingHostedCombinedSessionsParametersSchema, + }, + tags: ["hosted"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/hosted/sessions": { + get: { + description: + "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", + tags: ["hosted"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/cust_league_sessions": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueCustomerSessionsParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/directory": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueDirectoryParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/get": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueGetParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/get_points_systems": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueGetPointsSystemsParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/membership": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueMembershipParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/roster": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueRosterParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/seasons": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueSeasonsParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/season_standings": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueSeasonStandingsParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/league/season_sessions": { + get: { + tags: ["league"], + requestParams: { + query: IRacingLeagueSeasonSessionsParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/lookup/countries": { + get: { + tags: ["lookup"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/lookup/flairs": { + get: { + tags: ["lookup"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/lookup/licenses": { + get: { + tags: ["lookup"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/lookup/drivers": { + get: { + requestParams: { + query: IRacingLookupDriversParametersSchema, + }, + tags: ["lookup"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/lookup/get": { + get: { + // requestParams: { + // query: z.record(z.string(), z.string()), + // }, + tags: ["lookup"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/member/awards": { + get: { + requestParams: { + query: IRacingMemberAwardsParametersSchema, + }, + tags: ["member"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/member/award_instances": { + get: { + requestParams: { + query: IRacingMemberAwardInstancesParametersSchema, + }, + tags: ["member"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/member/chart_data": { + get: { + tags: ["member"], + requestParams: { + query: IRacingMemberChartDataParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/member/get": { + get: { + tags: ["member"], + requestParams: { + query: IRacingMemberGetParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/member/info": { + get: { + tags: ["member"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/member/participation_credits": { + get: { + tags: ["member"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/member/profile": { + get: { + operationId: "getProfile", + summary: "Gets a requested user's profile.", + requestParams: { + query: IRacingMemberProfileParametersSchema, + }, + tags: ["member"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/results/get": { + get: { + tags: ["results"], + requestParams: { + query: IRacingResultsGetParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/results/event_log": { + get: { + tags: ["results"], + requestParams: { + query: IRacingResultsEventLogParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/results/lap_chart_data": { + get: { + tags: ["results"], + requestParams: { + query: IRacingResultsLapChartDataParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/results/lap_data": { + get: { + tags: ["results"], + requestParams: { + query: IRacingResultsLapDataParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/results/search_hosted": { + get: { + tags: ["results"], + requestParams: { + query: IRacingResultsSearchHostedParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/results/search_series": { + get: { + tags: ["results"], + requestParams: { + query: IRacingResultsSearchSeriesParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/results/season_results": { + get: { + tags: ["results"], + requestParams: { + query: IRacingResultsSeasonResultsParametersSchema, + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/season/list": { + get: { + requestParams: { + query: IRacingSeasonListParametersSchema, + }, + tags: ["season"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/season/race_guide": { + get: { + requestParams: { + query: IRacingSeasonRaceGuideParametersSchema, + }, + tags: ["season"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/series/assets": { + get: { + tags: ["series"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/series/get": { + get: { + tags: ["series"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/series/past_seasons": { + get: { + requestParams: { + query: IRacingSeriesPastSeasonsParametersSchema, + }, + tags: ["series"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/series/seasons": { + get: { + requestParams: { + query: IRacingSeriesSeasonsParametersSchema, + }, + tags: ["series"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/series/season_list": { + get: { + requestParams: { + query: IRacingSeriesSeasonListParametersSchema, + }, + tags: ["series"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/series/season_schedule": { + get: { + requestParams: { + query: IRacingSeriesSeasonScheduleParametersSchema, + }, + tags: ["series"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/series/stats_series": { + get: { + tags: ["series"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/member_bests": { + get: { + requestParams: { + query: IRacingStatsMemberBestsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/member_career": { + get: { + requestParams: { + query: IRacingStatsMemberCareerParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/member_division": { + get: { + requestParams: { + query: IRacingStatsMemberDivisionParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/member_recap": { + get: { + requestParams: { + query: IRacingStatsMemberRecapParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/member_recent_races": { + get: { + requestParams: { + query: IRacingStatsMemberRecentRacesParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/member_summary": { + get: { + requestParams: { + query: IRacingStatsMemberSummaryParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/member_yearly": { + get: { + requestParams: { + query: IRacingStatsMemberYearlyParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/season_driver_standings": { + get: { + requestParams: { + query: IRacingStatsSeasonDriverStandingsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/season_supersession_standings": { + get: { + requestParams: { + query: IRacingStatsSeasonSupersessionStandingsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/season_team_standings": { + get: { + requestParams: { + query: IRacingStatsSeasonTeamStandingsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/season_time_trial_standings": { + get: { + requestParams: { + query: IRacingStatsSeasonTTStandingsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/season_time_trial_results": { + get: { + requestParams: { + query: IRacingStatsSeasonTTResultsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/season_qualify_results": { + get: { + requestParams: { + query: IRacingStatsSeasonQualifyResultsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/stats/world_records": { + get: { + requestParams: { + query: IRacingStatsWorldRecordsParametersSchema, + }, + tags: ["stats"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/team/get": { + get: { + requestParams: { + query: IRacingTeamGetParametersSchema, + }, + tags: ["team"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/team/membership": { + get: { + tags: ["team"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/time_attack/member_season_results": { + get: { + requestParams: { + query: IRacingTimeAttackMemberSeasonResultsParametersSchema, + }, + tags: ["time_attack"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/track/assets": { + get: { + tags: ["track"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/track/get": { + get: { + tags: ["track"], + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + }, + }); + + // Remove the existing file + if (fs.existsSync(outputPath)) { + fs.unlinkSync(outputPath); + } + + // Write to file. + console.log(`Writing to ${outputPath}`); + fs.writeFileSync(outputPath, JSON.stringify(document)); +} diff --git a/packages/helpers/api-schema-to-openapi/tsconfig.build.json b/packages/helpers/api-schema-to-openapi/tsconfig.build.json new file mode 100644 index 0000000..b949552 --- /dev/null +++ b/packages/helpers/api-schema-to-openapi/tsconfig.build.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noUnusedLocals": false, + "declarationMap": false, + "sourceMap": false, + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/packages/helpers/api-schema-to-openapi/tsconfig.json b/packages/helpers/api-schema-to-openapi/tsconfig.json new file mode 100644 index 0000000..9abc5e7 --- /dev/null +++ b/packages/helpers/api-schema-to-openapi/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["src/*"] + } + } +} From 39ca27bd33d66ab2f46fa8ea24d1f7ebe359429a Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Tue, 11 Nov 2025 14:30:54 -0500 Subject: [PATCH 04/28] add oauth server information --- packages/api-client/openapi/openapi.json | 4148 +---------------- .../api-schema-to-openapi/src/index.ts | 15 + 2 files changed, 16 insertions(+), 4147 deletions(-) diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json index 2629116..cc71a81 100644 --- a/packages/api-client/openapi/openapi.json +++ b/packages/api-client/openapi/openapi.json @@ -1,4147 +1 @@ -{ - "openapi": "3.1.1", - "info": { - "title": "iRacing `/data` API", - "version": "0.0.1" - }, - "servers": [ - { - "url": "https://members-ng.iracing.com/" - } - ], - "security": [ - { - "bearerAuth": [] - } - ], - "tags": [ - { - "name": "doc", - "description": "A documentation endpoint." - }, - { - "name": "car", - "description": "Car service endpoint." - }, - { - "name": "carclass", - "description": "Car class service endpoint." - }, - { - "name": "constants", - "description": "Constants service endpoint." - }, - { - "name": "driver_stats", - "description": "Driver stats service endpoint." - }, - { - "name": "hosted", - "description": "Hosted service endpoint." - }, - { - "name": "league", - "description": "League service endpoint" - }, - { - "name": "lookup", - "description": "Lookup endpoints for static reference data (countries, licenses, drivers, etc.)" - }, - { - "name": "member", - "description": "Member profile and related endpoints (profile, awards, participation credits)." - }, - { - "name": "results", - "description": "Race and session result endpoints (lap data, event logs, season results)." - }, - { - "name": "season", - "description": "Season-related endpoints (season lists, race guides, schedules)." - }, - { - "name": "series", - "description": "Series endpoints (series metadata, seasons, assets)." - }, - { - "name": "stats", - "description": "Statistical endpoints and summaries for members and seasons." - }, - { - "name": "team", - "description": "Team endpoints (team details, membership)." - }, - { - "name": "time_attack", - "description": "Time attack specific endpoints and member season results." - }, - { - "name": "track", - "description": "Track metadata and asset endpoints." - } - ], - "paths": { - "/data/doc": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/carclass": { - "get": { - "tags": [ - "doc", - "carclass" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/carclass/get": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/car": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/car/assets": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/car/get": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants/categories": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants/divisions": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants/event_types": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category/oval": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category/sports_car": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category/formula_car": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category/road": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category/dirt_oval": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category/dirt_road": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/hosted": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/hosted/combined_sessions": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/hosted/sessions": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/cust_league_sessions": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/directory": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/get": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/get_points_systems": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/membership": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/roster": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/seasons": { - "get": { - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/season_standings": { - "get": { - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/season_sessions": { - "get": { - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/countries": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/drivers": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/flairs": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/get": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/licenses": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/awards": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/award_instances": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/chart_data": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/get": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/info": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/participation_credits": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/profile": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/get": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/event_log": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/lap_chart_data": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/lap_data": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/search_hosted": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/search_series": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/season_results": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/list": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/race_guide": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/spectator_subsessionids": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/spectator_subsessionids_detail": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/assets": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/get": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/past_seasons": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/seasons": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/season_list": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/season_schedule": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/stats_series": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_bests": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_career": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_division": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_recap": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_recent_races": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_summary": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_yearly": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_driver_standings": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_supersession_standings": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_team_standings": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_tt_standings": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_tt_results": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_qualify_results": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/world_records": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/team": { - "get": { - "tags": [ - "doc" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/team/get": { - "get": { - "tags": [ - "doc", - "team" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/team/membership": { - "get": { - "tags": [ - "doc", - "team" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/time_attack": { - "get": { - "tags": [ - "doc", - "time_attack" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/time_attack/member_season_results": { - "get": { - "tags": [ - "doc", - "time_attack" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/track": { - "get": { - "tags": [ - "doc", - "track" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/track/assets": { - "get": { - "tags": [ - "doc", - "track" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/track/get": { - "get": { - "tags": [ - "doc", - "track" - ], - "responses": { - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/carclass/get": { - "get": { - "operationId": "getCarClass", - "summary": "Gets car classes.", - "tags": [ - "carclass" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/car/assets": { - "get": { - "description": "image paths are relative to https://images-static.iracing.com/", - "tags": [ - "car" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/car/get": { - "get": { - "tags": [ - "car" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/constants/categories": { - "get": { - "description": "Constant; returned directly as an array of objects", - "tags": [ - "constants" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/constants/divisions": { - "get": { - "description": "Constant; returned directly as an array of objects", - "tags": [ - "constants" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/constants/event_types": { - "get": { - "description": "Constant; returned directly as an array of objects", - "tags": [ - "constants" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/driver_stats_by_category/{category}": { - "get": { - "tags": [ - "driver_stats" - ], - "parameters": [ - { - "in": "path", - "name": "category", - "schema": { - "$ref": "#/components/schemas/iracingCategory" - }, - "required": true, - "description": "Racing category." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/hosted/combined_sessions": { - "get": { - "description": "Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.", - "tags": [ - "hosted" - ], - "parameters": [ - { - "in": "query", - "name": "package_id", - "schema": { - "description": "If set, return only sessions using this car or track package ID.", - "type": "number" - }, - "description": "If set, return only sessions using this car or track package ID." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/hosted/sessions": { - "get": { - "description": "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", - "tags": [ - "hosted" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/cust_league_sessions": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "mine", - "schema": { - "description": "If true, return only sessions created by this user.", - "type": "boolean" - }, - "description": "If true, return only sessions created by this user." - }, - { - "in": "query", - "name": "package_id", - "schema": { - "description": "If set, return only sessions using this car or track package ID.", - "type": "number" - }, - "description": "If set, return only sessions using this car or track package ID." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/directory": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "search", - "schema": { - "description": "Will search against league name, description, owner, and league ID.", - "type": "string" - }, - "description": "Will search against league name, description, owner, and league ID." - }, - { - "in": "query", - "name": "tag", - "schema": { - "description": "One or more tags, comma-separated.", - "type": "string" - }, - "description": "One or more tags, comma-separated." - }, - { - "in": "query", - "name": "restrict_to_member", - "schema": { - "description": "If true include only leagues for which customer is a member.", - "type": "boolean" - }, - "description": "If true include only leagues for which customer is a member." - }, - { - "in": "query", - "name": "restrict_to_recruiting", - "schema": { - "description": "If true include only leagues which are recruiting.", - "type": "boolean" - }, - "description": "If true include only leagues which are recruiting." - }, - { - "in": "query", - "name": "restrict_to_friends", - "schema": { - "description": "If true include only leagues owned by a friend.", - "type": "boolean" - }, - "description": "If true include only leagues owned by a friend." - }, - { - "in": "query", - "name": "restrict_to_watched", - "schema": { - "description": "If true include only leagues owned by a watched member.", - "type": "boolean" - }, - "description": "If true include only leagues owned by a watched member." - }, - { - "in": "query", - "name": "minimum_roster_count", - "schema": { - "description": "If set include leagues with at least this number of members.", - "type": "number" - }, - "description": "If set include leagues with at least this number of members." - }, - { - "in": "query", - "name": "maximum_roster_count", - "schema": { - "description": "If set include leagues with no more than this number of members.", - "type": "number" - }, - "description": "If set include leagues with no more than this number of members." - }, - { - "in": "query", - "name": "lowerbound", - "schema": { - "description": "First row of results to return. Defaults to 1.", - "type": "number" - }, - "description": "First row of results to return. Defaults to 1." - }, - { - "in": "query", - "name": "upperbound", - "schema": { - "description": "Last row of results to return. Defaults to lowerbound + 39.", - "type": "number" - }, - "description": "Last row of results to return. Defaults to lowerbound + 39." - }, - { - "in": "query", - "name": "sort", - "schema": { - "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.", - "type": "string" - }, - "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance." - }, - { - "in": "query", - "name": "order", - "schema": { - "description": "One of asc or desc. Defaults to asc.", - "type": "string" - }, - "description": "One of asc or desc. Defaults to asc." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/get": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "description": "For faster responses, only request when necessary.", - "type": "boolean" - }, - "description": "For faster responses, only request when necessary." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/get_points_systems": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_id", - "schema": { - "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.", - "type": "number" - }, - "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/membership": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.", - "$ref": "#/components/schemas/customerId" - }, - "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned." - }, - { - "in": "query", - "name": "include_league", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/roster": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "description": "For faster responses, only request when necessary.", - "type": "boolean" - }, - "description": "For faster responses, only request when necessary." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/seasons": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "retired", - "schema": { - "description": "If true include seasons which are no longer active.", - "type": "boolean" - }, - "description": "If true include seasons which are no longer active." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/season_standings": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "car_id", - "schema": { - "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.", - "type": "number" - }, - "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/season_sessions": { - "get": { - "tags": [ - "league" - ], - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "results_only", - "schema": { - "description": "If true include only sessions for which results are available.", - "type": "boolean" - }, - "description": "If true include only sessions for which results are available." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/countries": { - "get": { - "tags": [ - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/flairs": { - "get": { - "tags": [ - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/licenses": { - "get": { - "tags": [ - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/drivers": { - "get": { - "tags": [ - "lookup" - ], - "parameters": [ - { - "in": "query", - "name": "search_term", - "schema": { - "description": "A cust_id or partial name for which to search.", - "type": "string" - }, - "required": true, - "description": "A cust_id or partial name for which to search." - }, - { - "in": "query", - "name": "league_id", - "schema": { - "description": "Narrow the search to the roster of the given league.", - "type": "number" - }, - "description": "Narrow the search to the roster of the given league." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/get": { - "get": { - "tags": [ - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/awards": { - "get": { - "tags": [ - "member" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/award_instances": { - "get": { - "tags": [ - "member" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "award_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/chart_data": { - "get": { - "tags": [ - "member" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "category_id", - "schema": { - "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road", - "type": "number" - }, - "required": true, - "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road" - }, - { - "in": "query", - "name": "chart_type", - "schema": { - "description": "1 - iRating; 2 - TT Rating; 3 - License/SR", - "$ref": "#/components/schemas/iracingChartType" - }, - "required": true, - "description": "1 - iRating; 2 - TT Rating; 3 - License/SR" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/get": { - "get": { - "tags": [ - "member" - ], - "parameters": [ - { - "in": "query", - "name": "cust_ids", - "schema": { - "description": "?cust_ids=2,3,4", - "type": "array", - "items": { - "type": "number" - } - }, - "required": true, - "description": "?cust_ids=2,3,4" - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/info": { - "get": { - "tags": [ - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/participation_credits": { - "get": { - "tags": [ - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/profile": { - "get": { - "operationId": "getProfile", - "summary": "Gets a requested user's profile.", - "tags": [ - "member" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/get": { - "get": { - "tags": [ - "results" - ], - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/event_log": { - "get": { - "tags": [ - "results" - ], - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "simsession_number", - "schema": { - "description": "The main event is 0; the preceding event is -1, and so on.", - "type": "number" - }, - "required": true, - "description": "The main event is 0; the preceding event is -1, and so on." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/lap_chart_data": { - "get": { - "tags": [ - "results" - ], - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "simsession_number", - "schema": { - "description": "The main event is 0; the preceding event is -1, and so on.", - "type": "number" - }, - "required": true, - "description": "The main event is 0; the preceding event is -1, and so on." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/lap_data": { - "get": { - "tags": [ - "results" - ], - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "simsession_number", - "schema": { - "description": "The main event is 0; the preceding event is -1, and so on.", - "type": "number" - }, - "required": true, - "description": "The main event is 0; the preceding event is -1, and so on." - }, - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included." - }, - { - "in": "query", - "name": "team_id", - "schema": { - "description": "Required if the subsession was a team event.", - "type": "number" - }, - "description": "Required if the subsession was a team event." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/search_hosted": { - "get": { - "tags": [ - "results" - ], - "parameters": [ - { - "in": "query", - "name": "start_range_begin", - "schema": { - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "start_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "finish_range_begin", - "schema": { - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "finish_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "The participant's customer ID. Ignored if team_id is supplied.", - "$ref": "#/components/schemas/customerId" - }, - "description": "The participant's customer ID. Ignored if team_id is supplied." - }, - { - "in": "query", - "name": "team_id", - "schema": { - "description": "The team ID to search for. Takes priority over cust_id if both are supplied.", - "type": "number" - }, - "description": "The team ID to search for. Takes priority over cust_id if both are supplied." - }, - { - "in": "query", - "name": "host_cust_id", - "schema": { - "description": "The host's customer ID.", - "$ref": "#/components/schemas/customerId" - }, - "description": "The host's customer ID." - }, - { - "in": "query", - "name": "session_name", - "schema": { - "description": "Part or all of the session's name.", - "type": "string" - }, - "description": "Part or all of the session's name." - }, - { - "in": "query", - "name": "league_id", - "schema": { - "description": "Include only results for the league with this ID.", - "type": "number" - }, - "description": "Include only results for the league with this ID." - }, - { - "in": "query", - "name": "league_season_id", - "schema": { - "description": "Include only results for the league season with this ID.", - "type": "number" - }, - "description": "Include only results for the league season with this ID." - }, - { - "in": "query", - "name": "car_id", - "schema": { - "description": "One of the cars used by the session.", - "type": "number" - }, - "description": "One of the cars used by the session." - }, - { - "in": "query", - "name": "track_id", - "schema": { - "description": "The ID of the track used by the session.", - "type": "number" - }, - "description": "The ID of the track used by the session." - }, - { - "in": "query", - "name": "category_ids", - "schema": { - "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", - "type": "array", - "items": { - "type": "number" - } - }, - "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/search_series": { - "get": { - "tags": [ - "results" - ], - "parameters": [ - { - "in": "query", - "name": "season_year", - "schema": { - "description": "Required when using season_quarter.", - "type": "number" - }, - "description": "Required when using season_quarter." - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "description": "Required when using season_year.", - "type": "number" - }, - "description": "Required when using season_year." - }, - { - "in": "query", - "name": "start_range_begin", - "schema": { - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "start_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "finish_range_begin", - "schema": { - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "finish_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied." - }, - { - "in": "query", - "name": "team_id", - "schema": { - "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", - "type": "number" - }, - "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied." - }, - { - "in": "query", - "name": "series_id", - "schema": { - "description": "Include only sessions for series with this ID.", - "type": "number" - }, - "description": "Include only sessions for series with this ID." - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "Include only sessions with this race week number.", - "type": "number" - }, - "description": "Include only sessions with this race week number." - }, - { - "in": "query", - "name": "official_only", - "schema": { - "description": "If true, include only sessions earning championship points. Defaults to all.", - "type": "boolean" - }, - "description": "If true, include only sessions earning championship points. Defaults to all." - }, - { - "in": "query", - "name": "event_types", - "schema": { - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", - "type": "array", - "items": { - "type": "number" - } - }, - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" - }, - { - "in": "query", - "name": "category_ids", - "schema": { - "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", - "type": "array", - "items": { - "type": "number" - } - }, - "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/season_results": { - "get": { - "tags": [ - "results" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "event_type", - "schema": { - "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race", - "$ref": "#/components/schemas/iracingEventType" - }, - "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race" - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/season/list": { - "get": { - "tags": [ - "season" - ], - "parameters": [ - { - "in": "query", - "name": "season_year", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/season/race_guide": { - "get": { - "tags": [ - "season" - ], - "parameters": [ - { - "in": "query", - "name": "from", - "schema": { - "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" - }, - "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time." - }, - { - "in": "query", - "name": "include_end_after_from", - "schema": { - "description": "Include sessions which start before 'from' but end after.", - "type": "boolean" - }, - "description": "Include sessions which start before 'from' but end after." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/assets": { - "get": { - "tags": [ - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/get": { - "get": { - "tags": [ - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/past_seasons": { - "get": { - "tags": [ - "series" - ], - "parameters": [ - { - "in": "query", - "name": "series_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/seasons": { - "get": { - "tags": [ - "series" - ], - "parameters": [ - { - "in": "query", - "name": "include_series", - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "season_year", - "schema": { - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", - "type": "number" - }, - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", - "type": "number" - }, - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/season_list": { - "get": { - "tags": [ - "series" - ], - "parameters": [ - { - "in": "query", - "name": "include_series", - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "season_year", - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "type": "number" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/season_schedule": { - "get": { - "tags": [ - "series" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/stats_series": { - "get": { - "tags": [ - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_bests": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "car_id", - "schema": { - "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls.", - "type": "number" - }, - "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_career": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_division": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "event_type", - "schema": { - "description": "The event type code for the division type: 4 - Time Trial; 5 - Race", - "anyOf": [ - { - "description": "Time trial", - "type": "number", - "const": 4 - }, - { - "description": "Race", - "type": "number", - "const": 5 - } - ] - }, - "required": true, - "description": "The event type code for the division type: 4 - Time Trial; 5 - Race" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_recap": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "year", - "schema": { - "description": "Season year; if not supplied the current calendar year (UTC) is used.", - "anyOf": [ - { - "type": "number", - "const": 1 - }, - { - "type": "number", - "const": 2 - }, - { - "type": "number", - "const": 3 - }, - { - "type": "number", - "const": 4 - } - ] - }, - "description": "Season year; if not supplied the current calendar year (UTC) is used." - }, - { - "in": "query", - "name": "season", - "schema": { - "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year.", - "type": "number" - }, - "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_recent_races": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_summary": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_yearly": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_driver_standings": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_supersession_standings": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_team_standings": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_time_trial_standings": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_time_trial_results": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "required": true, - "description": "The first race week of a season is 0." - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_qualify_results": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "required": true, - "description": "The first race week of a season is 0." - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/world_records": { - "get": { - "tags": [ - "stats" - ], - "parameters": [ - { - "in": "query", - "name": "car_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "track_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_year", - "schema": { - "description": "Limit best times to a given year.", - "type": "number" - }, - "description": "Limit best times to a given year." - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "description": "Limit best times to a given quarter; only applicable when year is used.", - "type": "number" - }, - "description": "Limit best times to a given quarter; only applicable when year is used." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/team/get": { - "get": { - "tags": [ - "team" - ], - "parameters": [ - { - "in": "query", - "name": "team_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "description": "For faster responses, only request when necessary.", - "type": "boolean" - }, - "description": "For faster responses, only request when necessary." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/team/membership": { - "get": { - "tags": [ - "team" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/time_attack/member_season_results": { - "get": { - "tags": [ - "time_attack" - ], - "parameters": [ - { - "in": "query", - "name": "ta_comp_season_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/track/assets": { - "get": { - "tags": [ - "track" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/track/get": { - "get": { - "tags": [ - "track" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - } - }, - "components": { - "schemas": { - "iracingCategory": { - "description": "Racing category.", - "anyOf": [ - { - "description": "Oval discipline", - "type": "string", - "const": "oval" - }, - { - "description": "Road discipline. Legacy, use `sports_car` or `formula_car` instead.", - "type": "string", - "const": "road" - }, - { - "description": "Dirt road discipline.", - "type": "string", - "const": "dirt_road" - }, - { - "description": "Dirt oval discipline.", - "type": "string", - "const": "dirt_oval" - }, - { - "description": "Sports car discipline.", - "type": "string", - "const": "sports_car" - }, - { - "description": "Formula car discipline.", - "type": "string", - "const": "formula_car" - } - ] - }, - "customerId": { - "description": "Numeric ID of a customer on iRacing.", - "type": "number" - }, - "iracingChartType": { - "description": "iRacing Chart Type", - "anyOf": [ - { - "description": "iRating", - "type": "number", - "const": 1 - }, - { - "description": "Time trial rating", - "type": "number", - "const": 2 - }, - { - "description": "License rating", - "type": "number", - "const": 3 - } - ] - }, - "iracingEventType": { - "description": "iRacing Event Type", - "anyOf": [ - { - "description": "Practice", - "type": "number", - "const": 2 - }, - { - "description": "Qualifying", - "type": "number", - "const": 3 - }, - { - "description": "Time trial", - "type": "number", - "const": 4 - }, - { - "description": "Race", - "type": "number", - "const": 5 - } - ] - }, - "iracingDivision": { - "description": "iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.", - "anyOf": [ - { - "description": "Division 1", - "type": "number", - "const": 0 - }, - { - "description": "Division 2", - "type": "number", - "const": 1 - }, - { - "description": "Division 3", - "type": "number", - "const": 2 - }, - { - "description": "Division 4", - "type": "number", - "const": 3 - }, - { - "description": "Division 5", - "type": "number", - "const": 4 - }, - { - "description": "Division 6", - "type": "number", - "const": 5 - }, - { - "description": "Division 7", - "type": "number", - "const": 6 - }, - { - "description": "Division 8", - "type": "number", - "const": 7 - }, - { - "description": "Division 9", - "type": "number", - "const": 8 - }, - { - "description": "Division 10", - "type": "number", - "const": 9 - }, - { - "description": "Rookie", - "type": "number", - "const": 10 - } - ] - }, - "iracingAPIResponse": { - "description": "Response from iRacing `/data` API.", - "type": "object", - "properties": { - "link": { - "description": "A link to the cached data", - "type": "string", - "format": "uri" - }, - "expires": { - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - } - }, - "required": [ - "link", - "expires" - ], - "additionalProperties": false - } - }, - "headers": { - "x-ratelimit-limit": { - "required": true, - "description": "The current total rate limit.", - "schema": { - "title": "Rate limit limit", - "description": "The current total rate limit.", - "type": "number" - } - }, - "x-ratelimit-remaining": { - "required": true, - "description": "How much of the rate limit you have remaining.", - "schema": { - "title": "Rate limit remaining", - "description": "How much of the rate limit you have remaining.", - "type": "number" - } - }, - "x-ratelimit-reset": { - "required": true, - "description": "When the rate limit will reset in epoch timestamp.", - "schema": { - "title": "Rate limit reset", - "description": "When the rate limit will reset in epoch timestamp.", - "type": "string" - } - } - }, - "responses": { - "Success": { - "description": "Success", - "headers": { - "x-ratelimit-limit": { - "$ref": "#/components/headers/x-ratelimit-limit" - }, - "x-ratelimit-remaining": { - "$ref": "#/components/headers/x-ratelimit-remaining" - }, - "x-ratelimit-reset": { - "$ref": "#/components/headers/x-ratelimit-reset" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/iracingAPIResponse" - } - } - } - }, - "RateLimited": { - "description": "Rate limited", - "headers": { - "x-ratelimit-limit": { - "$ref": "#/components/headers/x-ratelimit-limit" - }, - "x-ratelimit-remaining": { - "$ref": "#/components/headers/x-ratelimit-remaining" - }, - "x-ratelimit-reset": { - "$ref": "#/components/headers/x-ratelimit-reset" - } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error" - ], - "additionalProperties": false - } - } - } - }, - "Maintenance": { - "description": "Maintenance", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - }, - "note": { - "type": "string" - } - }, - "required": [ - "error" - ], - "additionalProperties": false - } - } - } - }, - "Unauthorized": { - "description": "Access token is missing or invalid.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "error" - ], - "additionalProperties": false - } - } - } - } - }, - "securitySchemes": { - "bearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "JWT Authentication" - } - } - } -} \ No newline at end of file +{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/data/doc":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"tags":["doc","carclass"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/oval":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/sports_car":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/formula_car":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/road":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/dirt_oval":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/dirt_road":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"tags":["doc","team"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"tags":["doc","team"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"tags":["doc","time_attack"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"tags":["doc","time_attack"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"tags":["doc","track"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"tags":["doc","track"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"tags":["doc","track"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"tags":["car"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"tags":["driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"tags":["lookup"],"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","$ref":"#/components/schemas/iracingChartType"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"?cust_ids=2,3,4","type":"array","items":{"type":"number"}},"required":true,"description":"?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getProfile","summary":"Gets a requested user's profile.","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"type":"number"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"tags":["season"],"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"tags":["season"],"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"tags":["team"],"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"tags":["team"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"tags":["time_attack"],"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"tags":["track"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"tags":["track"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingChartType":{"description":"iRacing Chart Type","anyOf":[{"description":"iRating","type":"number","const":1},{"description":"Time trial rating","type":"number","const":2},{"description":"License rating","type":"number","const":3}]},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index f8f1853..21cf21a 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -129,6 +129,21 @@ export async function generateOpenAPISpec({ bearerFormat: "JWT", description: "JWT Authentication", }, + oAuth2: { + type: "oauth2", + description: + "OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html", + flows: { + authorizationCode: { + authorizationUrl: "https://oauth.iracing.com/oauth2/authorize", + tokenUrl: "https://oauth.iracing.com/oauth2/token", + scopes: { + "iracing.auth": "Authorization for iRacing services.", + "iracing.profile": "Access to the iRacing profile.", + }, + }, + }, + }, }, }, security: [ From bae99567da6977a2ae60d787da0076a88b41f94d Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Tue, 11 Nov 2025 15:57:08 -0500 Subject: [PATCH 05/28] Add oauth-schema and generator for oauth specific routes --- packages/api-schema/src/schema.ts | 412 +++----- .../api-schema-to-openapi/src/index.ts | 5 + .../helpers/oauth-schema-to-openapi/README.md | 11 + .../oauth-schema-to-openapi/package.json | 21 + .../oauth-schema-to-openapi/src/cli.ts | 24 + .../oauth-schema-to-openapi/src/index.ts | 169 ++++ .../tsconfig.build.json | 14 + .../oauth-schema-to-openapi/tsconfig.json | 9 + packages/oauth/schema/package.json | 12 + packages/oauth/schema/src/index.ts | 1 + packages/oauth/schema/src/schema.ts | 172 ++++ packages/oauth/schema/tsconfig.build.json | 11 + packages/oauth/schema/tsconfig.json | 9 + pnpm-lock.yaml | 913 +++++++++++++++++- 14 files changed, 1489 insertions(+), 294 deletions(-) create mode 100644 packages/helpers/oauth-schema-to-openapi/README.md create mode 100644 packages/helpers/oauth-schema-to-openapi/package.json create mode 100644 packages/helpers/oauth-schema-to-openapi/src/cli.ts create mode 100644 packages/helpers/oauth-schema-to-openapi/src/index.ts create mode 100644 packages/helpers/oauth-schema-to-openapi/tsconfig.build.json create mode 100644 packages/helpers/oauth-schema-to-openapi/tsconfig.json create mode 100644 packages/oauth/schema/package.json create mode 100644 packages/oauth/schema/src/index.ts create mode 100644 packages/oauth/schema/src/schema.ts create mode 100644 packages/oauth/schema/tsconfig.build.json create mode 100644 packages/oauth/schema/tsconfig.json diff --git a/packages/api-schema/src/schema.ts b/packages/api-schema/src/schema.ts index 5bb3cf9..72bb3c0 100644 --- a/packages/api-schema/src/schema.ts +++ b/packages/api-schema/src/schema.ts @@ -1,5 +1,9 @@ import { z } from "zod"; +/** + * `/data` API schema + */ + export const IRacingAccessTokenSchema = z.jwt().meta({ description: "JWT ID Token from iRacing OAuth Service", id: "iracingAccessToken", @@ -184,12 +188,9 @@ export const IRacingHostedCombinedSessionsParametersSchema = z.object({ }); export const IRacingLeagueCustomerSessionsParametersSchema = z.object({ - mine: z - .boolean() - .optional() - .meta({ - description: "If true, return only sessions created by this user.", - }), + mine: z.boolean().optional().meta({ + description: "If true, return only sessions created by this user.", + }), package_id: z.number().optional().meta({ description: "If set, return only sessions using this car or track package ID.", @@ -205,54 +206,33 @@ export const IRacingLeagueDirectoryParametersSchema = z.object({ .string() .optional() .meta({ description: "One or more tags, comma-separated." }), - restrict_to_member: z - .boolean() - .optional() - .meta({ - description: - "If true include only leagues for which customer is a member.", - }), - restrict_to_recruiting: z - .boolean() - .optional() - .meta({ - description: "If true include only leagues which are recruiting.", - }), + restrict_to_member: z.boolean().optional().meta({ + description: "If true include only leagues for which customer is a member.", + }), + restrict_to_recruiting: z.boolean().optional().meta({ + description: "If true include only leagues which are recruiting.", + }), restrict_to_friends: z .boolean() .optional() .meta({ description: "If true include only leagues owned by a friend." }), - restrict_to_watched: z - .boolean() - .optional() - .meta({ - description: "If true include only leagues owned by a watched member.", - }), - minimum_roster_count: z - .number() - .optional() - .meta({ - description: - "If set include leagues with at least this number of members.", - }), - maximum_roster_count: z - .number() - .optional() - .meta({ - description: - "If set include leagues with no more than this number of members.", - }), + restrict_to_watched: z.boolean().optional().meta({ + description: "If true include only leagues owned by a watched member.", + }), + minimum_roster_count: z.number().optional().meta({ + description: "If set include leagues with at least this number of members.", + }), + maximum_roster_count: z.number().optional().meta({ + description: + "If set include leagues with no more than this number of members.", + }), lowerbound: z .number() .optional() .meta({ description: "First row of results to return. Defaults to 1." }), - upperbound: z - .number() - .optional() - .meta({ - description: - "Last row of results to return. Defaults to lowerbound + 39.", - }), + upperbound: z.number().optional().meta({ + description: "Last row of results to return. Defaults to lowerbound + 39.", + }), sort: z.string().optional().meta({ description: "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.", @@ -265,12 +245,9 @@ export const IRacingLeagueDirectoryParametersSchema = z.object({ export const IRacingLeagueGetParametersSchema = z.object({ league_id: z.number(), - include_licenses: z - .boolean() - .optional() - .meta({ - description: "For faster responses, only request when necessary.", - }), + include_licenses: z.boolean().optional().meta({ + description: "For faster responses, only request when necessary.", + }), }); export const IRacingLeagueGetPointsSystemsParametersSchema = z.object({ @@ -291,22 +268,16 @@ export const IRacingLeagueMembershipParametersSchema = z.object({ export const IRacingLeagueRosterParametersSchema = z.object({ league_id: z.number(), - include_licenses: z - .boolean() - .optional() - .meta({ - description: "For faster responses, only request when necessary.", - }), + include_licenses: z.boolean().optional().meta({ + description: "For faster responses, only request when necessary.", + }), }); export const IRacingLeagueSeasonsParametersSchema = z.object({ league_id: z.number(), - retired: z - .boolean() - .optional() - .meta({ - description: "If true include seasons which are no longer active.", - }), + retired: z.boolean().optional().meta({ + description: "If true include seasons which are no longer active.", + }), }); export const IRacingLeagueSeasonStandingsParametersSchema = z.object({ @@ -322,25 +293,19 @@ export const IRacingLeagueSeasonStandingsParametersSchema = z.object({ export const IRacingLeagueSeasonSessionsParametersSchema = z.object({ league_id: z.number(), season_id: z.number(), - results_only: z - .boolean() - .optional() - .meta({ - description: - "If true include only sessions for which results are available.", - }), + results_only: z.boolean().optional().meta({ + description: + "If true include only sessions for which results are available.", + }), }); export const IRacingLookupDriversParametersSchema = z.object({ search_term: z .string() .meta({ description: "A cust_id or partial name for which to search." }), - league_id: z - .number() - .optional() - .meta({ - description: "Narrow the search to the roster of the given league.", - }), + league_id: z.number().optional().meta({ + description: "Narrow the search to the roster of the given league.", + }), }); export const IRacingMemberAwardsParametersSchema = z.object({ @@ -386,29 +351,23 @@ export const IRacingResultsGetParametersSchema = z.object({ export const IRacingResultsEventLogParametersSchema = z.object({ subsession_id: z.number(), - simsession_number: z - .number() - .meta({ - description: "The main event is 0; the preceding event is -1, and so on.", - }), + simsession_number: z.number().meta({ + description: "The main event is 0; the preceding event is -1, and so on.", + }), }); export const IRacingResultsLapChartDataParametersSchema = z.object({ subsession_id: z.number(), - simsession_number: z - .number() - .meta({ - description: "The main event is 0; the preceding event is -1, and so on.", - }), + simsession_number: z.number().meta({ + description: "The main event is 0; the preceding event is -1, and so on.", + }), }); export const IRacingResultsLapDataParametersSchema = z.object({ subsession_id: z.number(), - simsession_number: z - .number() - .meta({ - description: "The main event is 0; the preceding event is -1, and so on.", - }), + simsession_number: z.number().meta({ + description: "The main event is 0; the preceding event is -1, and so on.", + }), cust_id: IRacingCustomerIdSchema.optional().meta({ description: "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.", @@ -420,45 +379,30 @@ export const IRacingResultsLapDataParametersSchema = z.object({ }); export const IRacingResultsSearchHostedParametersSchema = z.object({ - start_range_begin: z.iso - .datetime() - .optional() - .meta({ - description: - 'Session start times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', - }), - start_range_end: z.iso - .datetime() - .optional() - .meta({ - description: - 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.', - }), - finish_range_begin: z.iso - .datetime() - .optional() - .meta({ - description: - 'Session finish times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', - }), - finish_range_end: z.iso - .datetime() - .optional() - .meta({ - description: - 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.', - }), + start_range_begin: z.iso.datetime().optional().meta({ + description: + 'Session start times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + start_range_end: z.iso.datetime().optional().meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.', + }), + finish_range_begin: z.iso.datetime().optional().meta({ + description: + 'Session finish times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + finish_range_end: z.iso.datetime().optional().meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.', + }), cust_id: IRacingCustomerIdSchema.optional().meta({ description: "The participant's customer ID. Ignored if team_id is supplied.", }), - team_id: z - .number() - .optional() - .meta({ - description: - "The team ID to search for. Takes priority over cust_id if both are supplied.", - }), + team_id: z.number().optional().meta({ + description: + "The team ID to search for. Takes priority over cust_id if both are supplied.", + }), host_cust_id: IRacingCustomerIdSchema.optional().meta({ description: "The host's customer ID.", }), @@ -470,12 +414,9 @@ export const IRacingResultsSearchHostedParametersSchema = z.object({ .number() .optional() .meta({ description: "Include only results for the league with this ID." }), - league_season_id: z - .number() - .optional() - .meta({ - description: "Include only results for the league season with this ID.", - }), + league_season_id: z.number().optional().meta({ + description: "Include only results for the league season with this ID.", + }), car_id: z .number() .optional() @@ -484,13 +425,10 @@ export const IRacingResultsSearchHostedParametersSchema = z.object({ .number() .optional() .meta({ description: "The ID of the track used by the session." }), - category_ids: z - .array(z.number()) - .optional() - .meta({ - description: - "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", - }), + category_ids: z.array(z.number()).optional().meta({ + description: + "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + }), }); export const IRacingResultsSearchSeriesParametersSchema = z.object({ @@ -502,45 +440,30 @@ export const IRacingResultsSearchSeriesParametersSchema = z.object({ .number() .optional() .meta({ description: "Required when using season_year." }), - start_range_begin: z.iso - .datetime() - .optional() - .meta({ - description: - 'Session start times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', - }), - start_range_end: z.iso - .datetime() - .optional() - .meta({ - description: - 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.', - }), - finish_range_begin: z.iso - .datetime() - .optional() - .meta({ - description: - 'Session finish times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', - }), - finish_range_end: z.iso - .datetime() - .optional() - .meta({ - description: - 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.', - }), + start_range_begin: z.iso.datetime().optional().meta({ + description: + 'Session start times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + start_range_end: z.iso.datetime().optional().meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.', + }), + finish_range_begin: z.iso.datetime().optional().meta({ + description: + 'Session finish times. ISO-8601 UTC time zero offset: "2022-04-01T15:45Z".', + }), + finish_range_end: z.iso.datetime().optional().meta({ + description: + 'ISO-8601 UTC time zero offset: "2022-04-01T15:45Z". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.', + }), cust_id: IRacingCustomerIdSchema.optional().meta({ description: "Include only sessions in which this customer participated. Ignored if team_id is supplied.", }), - team_id: z - .number() - .optional() - .meta({ - description: - "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", - }), + team_id: z.number().optional().meta({ + description: + "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", + }), series_id: z .number() .optional() @@ -549,27 +472,18 @@ export const IRacingResultsSearchSeriesParametersSchema = z.object({ .number() .optional() .meta({ description: "Include only sessions with this race week number." }), - official_only: z - .boolean() - .optional() - .meta({ - description: - "If true, include only sessions earning championship points. Defaults to all.", - }), - event_types: z - .array(z.number()) - .optional() - .meta({ - description: - "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", - }), - category_ids: z - .array(z.number()) - .optional() - .meta({ - description: - "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", - }), + official_only: z.boolean().optional().meta({ + description: + "If true, include only sessions earning championship points. Defaults to all.", + }), + event_types: z.array(z.number()).optional().meta({ + description: + "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + }), + category_ids: z.array(z.number()).optional().meta({ + description: + "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + }), }); export const IRacingResultsSeasonResultsParametersSchema = z.object({ @@ -594,40 +508,28 @@ export const IRacingSeasonRaceGuideParametersSchema = z.object({ description: "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.", }), - include_end_after_from: z - .boolean() - .optional() - .meta({ - description: "Include sessions which start before 'from' but end after.", - }), + include_end_after_from: z.boolean().optional().meta({ + description: "Include sessions which start before 'from' but end after.", + }), }); export const IRacingSeasonSpectatorSubsessionidsParametersSchema = z.object({ - event_types: z - .array(IRacingEventTypeSchema) - .optional() - .meta({ - description: - "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", - }), + event_types: z.array(IRacingEventTypeSchema).optional().meta({ + description: + "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + }), }); export const IRacingSeasonSpectatorSubsessionidsDetailParametersSchema = z.object({ - event_types: z - .array(IRacingEventTypeSchema) - .optional() - .meta({ - description: - "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", - }), - season_ids: z - .array(z.number()) - .optional() - .meta({ - description: - "Seasons to include in the search. Defaults to all. ?season_ids=513,937", - }), + event_types: z.array(IRacingEventTypeSchema).optional().meta({ + description: + "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + }), + season_ids: z.array(z.number()).optional().meta({ + description: + "Seasons to include in the search. Defaults to all. ?season_ids=513,937", + }), }); export const IRacingSeriesPastSeasonsParametersSchema = z.object({ @@ -636,20 +538,14 @@ export const IRacingSeriesPastSeasonsParametersSchema = z.object({ export const IRacingSeriesSeasonsParametersSchema = z.object({ include_series: z.boolean().optional(), - season_year: z - .number() - .optional() - .meta({ - description: - "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", - }), - season_quarter: z - .number() - .optional() - .meta({ - description: - "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", - }), + season_year: z.number().optional().meta({ + description: + "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + }), + season_quarter: z.number().optional().meta({ + description: + "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + }), }); export const IRacingSeriesSeasonListParametersSchema = z.object({ @@ -666,13 +562,10 @@ export const IRacingStatsMemberBestsParametersSchema = z.object({ cust_id: IRacingCustomerIdSchema.optional().meta({ description: "Defaults to the authenticated member.", }), - car_id: z - .number() - .optional() - .meta({ - description: - "First call should exclude car_id; use cars_driven list in return for subsequent calls.", - }), + car_id: z.number().optional().meta({ + description: + "First call should exclude car_id; use cars_driven list in return for subsequent calls.", + }), }); export const IRacingStatsMemberCareerParametersSchema = z.object({ @@ -702,13 +595,10 @@ export const IRacingStatsMemberRecapParametersSchema = z.object({ description: "Season year; if not supplied the current calendar year (UTC) is used.", }), - season: z - .number() - .optional() - .meta({ - description: - "Season (quarter) within the year; if not supplied the recap will be for the entire year.", - }), + season: z.number().optional().meta({ + description: + "Season (quarter) within the year; if not supplied the recap will be for the entire year.", + }), }); export const IRacingStatsMemberRecentRacesParametersSchema = z.object({ @@ -795,23 +685,17 @@ export const IRacingStatsWorldRecordsParametersSchema = z.object({ .number() .optional() .meta({ description: "Limit best times to a given year." }), - season_quarter: z - .number() - .optional() - .meta({ - description: - "Limit best times to a given quarter; only applicable when year is used.", - }), + season_quarter: z.number().optional().meta({ + description: + "Limit best times to a given quarter; only applicable when year is used.", + }), }); export const IRacingTeamGetParametersSchema = z.object({ team_id: z.number(), - include_licenses: z - .boolean() - .optional() - .meta({ - description: "For faster responses, only request when necessary.", - }), + include_licenses: z.boolean().optional().meta({ + description: "For faster responses, only request when necessary.", + }), }); export const IRacingTimeAttackMemberSeasonResultsParametersSchema = z.object({ diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index 21cf21a..4a86ad8 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -80,6 +80,11 @@ export async function generateOpenAPISpec({ version: "0.0.1", }, servers: [{ url: "https://members-ng.iracing.com/" }], + externalDocs: { + url: "/data/doc", + description: + "Find more information on available services here. Requires authentication.", + }, components: { headers: { rateLimitLimit: IRacingRateLimitLimitHeaderSchema, diff --git a/packages/helpers/oauth-schema-to-openapi/README.md b/packages/helpers/oauth-schema-to-openapi/README.md new file mode 100644 index 0000000..e9c9701 --- /dev/null +++ b/packages/helpers/oauth-schema-to-openapi/README.md @@ -0,0 +1,11 @@ +# @iracing-data/api-schema-to-openapi-schema + +Helper function to generate OpenAPI (Swagger) spec from [iRacing API zod schema](../../api-schema/). + +## Installation + +_Coming soon_ + +## Usage + +_Coming soon_ diff --git a/packages/helpers/oauth-schema-to-openapi/package.json b/packages/helpers/oauth-schema-to-openapi/package.json new file mode 100644 index 0000000..89aa2ba --- /dev/null +++ b/packages/helpers/oauth-schema-to-openapi/package.json @@ -0,0 +1,21 @@ +{ + "name": "@iracing-data/oauth-schema-to-openapi", + "version": "0.0.0-alpha.0", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "bin": { + "iracing-oauth-api-openapi": "dist/cli.js" + }, + "scripts": { + "build": "tsc --build tsconfig.build.json" + }, + "dependencies": { + "@iracing-data/oauth-schema": "workspace:*", + "commander": "^14.0.2", + "zod": "^4.1.12", + "zod-openapi": "^5.4.3" + }, + "devDependencies": { + "@commander-js/extra-typings": "^14.0.0" + } +} \ No newline at end of file diff --git a/packages/helpers/oauth-schema-to-openapi/src/cli.ts b/packages/helpers/oauth-schema-to-openapi/src/cli.ts new file mode 100644 index 0000000..1782186 --- /dev/null +++ b/packages/helpers/oauth-schema-to-openapi/src/cli.ts @@ -0,0 +1,24 @@ +#!/usr/bin/env node + +import path from "node:path"; +import { Command } from "@commander-js/extra-typings"; +import { generateOpenAPISpec } from "."; + +const program = new Command("iracing-oauth-api-openapi") + .requiredOption("-o, --output ", "Output path") + .option( + "-f, --file ", + "The name of the output file. Defaults to 'openapi.json'" + ) + .action(async (_, command) => { + const { output, file = "openapi.json" } = command.optsWithGlobals(); + + await generateOpenAPISpec({ + fileName: file, + outputDir: output, + }); + + console.log("Output schema to", path.join(output, file)); + }); + +program.parse(); diff --git a/packages/helpers/oauth-schema-to-openapi/src/index.ts b/packages/helpers/oauth-schema-to-openapi/src/index.ts new file mode 100644 index 0000000..1c21016 --- /dev/null +++ b/packages/helpers/oauth-schema-to-openapi/src/index.ts @@ -0,0 +1,169 @@ +import { + IRacingOAuthAuthorizeParametersSchema, + IRacingOAuthHeadersSchema, + IRacingOAuthProfileResponseSchema, + IRacingOAuthRequestIdHeaderSchema, + IRacingOAuthRevokeCurrentSessionInputSchema, + IRacingOAuthRevokeSessionsInputSchema, + IRacingOAuthSessionsSchema, + IRacingOAuthTokenParametersSchema, + IRacingOAuthTokenResponseSchema, +} from "@iracing-data/oauth-schema"; +import fs from "node:fs"; +import path from "node:path"; +import { createDocument } from "zod-openapi"; + +export interface GenerateOpenAPISpecOptions { + outputDir?: string; + fileName?: string; +} + +export async function generateOpenAPISpec({ + outputDir = __dirname, + fileName = "openapi.json", +}: GenerateOpenAPISpecOptions) { + const outputPath = path.join(outputDir, fileName); + + // Create the output dir if it doesn't exist + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + const document = createDocument({ + openapi: "3.1.1", + info: { + title: "iRacing OAuth API", + version: "0.0.1", + }, + servers: [ + { + url: "https://oauth.iracing.com", + description: "iRacing OAuth server.", + }, + ], + externalDocs: { + url: "/oauth2/book", + }, + components: { + headers: { + oAuthRequestId: IRacingOAuthRequestIdHeaderSchema, + }, + responses: { + SessionsRevoked: { + headers: IRacingOAuthHeadersSchema, + description: "Session(s) were successfully revoked.", + }, + }, + }, + paths: { + "/oauth2/iracing/profile": { + get: { + responses: { + 200: { + headers: IRacingOAuthHeadersSchema, + content: { + "application/json": { + schema: IRacingOAuthProfileResponseSchema, + }, + }, + }, + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/oauth2/sessions": { + get: { + responses: { + 200: { + headers: IRacingOAuthHeadersSchema, + content: { + "application/json": { + schema: IRacingOAuthSessionsSchema, + }, + }, + }, + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/oauth2/revoke/current": { + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + schema: IRacingOAuthRevokeCurrentSessionInputSchema, + }, + }, + }, + responses: { + 200: { $ref: "#/components/responses/SessionsRevoked" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/oauth2/revoke/sessions": { + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + schema: IRacingOAuthRevokeSessionsInputSchema, + }, + }, + }, + responses: { + 200: { $ref: "#/components/responses/SessionsRevoked" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/oauth2/revoke/client": { + post: { + responses: { + 200: { $ref: "#/components/responses/SessionsRevoked" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/oauth2/authorize": { + get: { + requestParams: { + query: IRacingOAuthAuthorizeParametersSchema, + }, + responses: { + 302: { + description: "Redirect back to the provided redirect_uri", + }, + }, + }, + }, + "/oauth2/token": { + post: { + requestBody: { + content: { + "application/x-www-form-urlencoded": { + schema: IRacingOAuthTokenParametersSchema, + }, + }, + }, + responses: { + 200: { + description: "Success", + content: { + "application/json": { schema: IRacingOAuthTokenResponseSchema }, + }, + }, + }, + }, + }, + }, + }); + + // Remove the existing file + if (fs.existsSync(outputPath)) { + fs.unlinkSync(outputPath); + } + + // Write to file. + console.log(`Writing to ${outputPath}`); + fs.writeFileSync(outputPath, JSON.stringify(document)); +} diff --git a/packages/helpers/oauth-schema-to-openapi/tsconfig.build.json b/packages/helpers/oauth-schema-to-openapi/tsconfig.build.json new file mode 100644 index 0000000..b949552 --- /dev/null +++ b/packages/helpers/oauth-schema-to-openapi/tsconfig.build.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noUnusedLocals": false, + "declarationMap": false, + "sourceMap": false, + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/packages/helpers/oauth-schema-to-openapi/tsconfig.json b/packages/helpers/oauth-schema-to-openapi/tsconfig.json new file mode 100644 index 0000000..9abc5e7 --- /dev/null +++ b/packages/helpers/oauth-schema-to-openapi/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["src/*"] + } + } +} diff --git a/packages/oauth/schema/package.json b/packages/oauth/schema/package.json new file mode 100644 index 0000000..fdcbe2e --- /dev/null +++ b/packages/oauth/schema/package.json @@ -0,0 +1,12 @@ +{ + "name": "@iracing-data/oauth-schema", + "version": "0.0.1-alpha.0", + "description": "Zod schema for iRacing OAuth API.", + "main": "dist/index.js", + "scripts": { + "build": "tsc --build tsconfig.build.json" + }, + "dependencies": { + "zod": "^4.1.12" + } +} \ No newline at end of file diff --git a/packages/oauth/schema/src/index.ts b/packages/oauth/schema/src/index.ts new file mode 100644 index 0000000..686fbd9 --- /dev/null +++ b/packages/oauth/schema/src/index.ts @@ -0,0 +1 @@ +export * from "./schema"; diff --git a/packages/oauth/schema/src/schema.ts b/packages/oauth/schema/src/schema.ts new file mode 100644 index 0000000..ff5b232 --- /dev/null +++ b/packages/oauth/schema/src/schema.ts @@ -0,0 +1,172 @@ +import { z } from "zod"; + +/** + * OAuth2 schema + */ + +// Primitives + +export const IRacingOAuthClientIdSchema = z.string().meta({ + description: "The client identifier issued during client registration.", +}); + +// Headers + +export const IRacingOAuthRequestIdHeaderKey = "x-request-id"; +export const IRacingOAuthRequestIdHeaderSchema = z.string().meta({ + title: "Request ID", + description: + "Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.", + header: { + id: IRacingOAuthRequestIdHeaderKey, + }, +}); + +export const IRacingOAuthHeadersSchema = z.object({ + [IRacingOAuthRequestIdHeaderKey]: IRacingOAuthRequestIdHeaderSchema, +}); + +// Requests and responses + +export const IRacingOAuthAuthorizeParametersSchema = z.object({ + client_id: IRacingOAuthClientIdSchema, + redirect_uri: z.url().meta({ + description: + "A redirect URI registered to the client, which must match exactly.", + }), + response_type: z.literal("code").meta({ + description: "The only valid value for this is code.", + }), + code_challenge: z.string().optional().meta({ + description: + "A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless.", + }), + code_challenge_method: z + .union([z.literal("plain"), z.literal("S256")]) + .default("plain") + .optional() + .meta({ + description: + "The PKCE code challenge method. Either S256 (recommended) or plain.", + }), + state: z.string().optional().meta({ + description: + "This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks.", + }), + scope: z.string().optional().meta({ + description: + "One or more scopes to request, if any, separated by whitespace.", + }), + prompt: z.string().optional().meta({ + description: + "Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user.", + }), +}); + +export const IRacingOAuthTokenAuthorizationCodeGrantParametersSchema = z.object( + { + grant_type: z.literal("authorization_code"), + client_id: IRacingOAuthClientIdSchema, + client_secret: z + .string() + .optional() + .meta({ description: "Required only if issued." }), + code: z + .string() + .meta({ description: "As returned to the redirect_uri of the client." }), + redirect_uri: z.string().meta({ + description: "The same redirect_uri used to `/authorize`.", + }), + code_verifier: z.string().optional().meta({ + description: + "The PKCE code verifier which is only required if a code_challenge was used to `/authorize``.", + }), + } +); + +export const IRacingOAuthTokenRefreshGrantParametersSchema = z.object({ + grant_type: z.literal("authorization_code"), + client_id: IRacingOAuthClientIdSchema, + client_secret: z + .string() + .optional() + .meta({ description: "Required only if issued." }), + refresh_token: z.string().meta({ + description: "As returned in the `/token` response.", + }), +}); + +export const IRacingOAuthTokenParametersSchema = z.discriminatedUnion( + "grant_type", + [ + IRacingOAuthTokenAuthorizationCodeGrantParametersSchema, + IRacingOAuthTokenRefreshGrantParametersSchema, + ] +); + +export const IRacingOAuthTokenResponseSchema = z.object({ + access_token: z.string(), + token_type: z.literal("bearer"), + expires_in: z.number(), + refresh_token: z.string().optional(), + refresh_token_expires_in: z.number().optional(), + scope: z.string().trim(), +}); + +export const IRacingOAuthSessionSchema = z.object({ + session_id: z.string().meta({ + description: + "A session identifier. This value is considered opaque and its format may change without warning at our discretion.", + }), + client_id: z.string().meta({ + description: "A client identifier.", + }), + client_name: z.string().meta({ + description: + "The name of the client as selected during client registration.", + }), + client_developer_name: z.string().nullable(), + client_developer_url: z.string().nullable(), + client_developer_email: z.string().nullable(), + scope: z.string().nullable(), + scope_descriptions: z.string().nullable(), + // auth_time: + // last_activity: + // session_expiration + current_session: z.boolean(), + impersonated: z.boolean(), + impersonation_note: z.string().nullable(), + first_ip: z.ipv4().nullable(), + first_continent: z.string().nullable(), + first_country: z.string().nullable(), + first_subdivisions: z.string().nullable(), + first_city: z.string().nullable(), + first_user_agent_header: z.string().nullable(), + first_user_agent_operating_system: z.string().nullable(), + first_user_agent_browser: z.string().nullable(), + last_ip: z.ipv4().nullable(), + last_continent: z.string().nullable(), + last_country: z.string().nullable(), + last_subdivisions: z.string().nullable(), + last_city: z.string().nullable(), + last_user_agent_header: z.string().nullable(), + last_user_agent_operating_system: z.string().nullable(), + last_user_agent_browser: z.string().nullable(), +}); + +export const IRacingOAuthSessionsSchema = z.object({ + sessions: z.array(IRacingOAuthSessionSchema), +}); + +export const IRacingOAuthProfileResponseSchema = z.object({ + iracing_name: z.string(), + iracing_cust_id: z.number(), +}); + +export const IRacingOAuthRevokeCurrentSessionInputSchema = z.object({ + forgetBrowser: z.boolean().optional(), +}); + +export const IRacingOAuthRevokeSessionsInputSchema = z.object({ + sessionIds: z.array(z.string()), +}); diff --git a/packages/oauth/schema/tsconfig.build.json b/packages/oauth/schema/tsconfig.build.json new file mode 100644 index 0000000..f8efe39 --- /dev/null +++ b/packages/oauth/schema/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noUnusedLocals": true, + "module": "nodenext", + "moduleResolution": "nodenext" + }, + "exclude": ["node_modules", "dist", "scripts"] +} diff --git a/packages/oauth/schema/tsconfig.json b/packages/oauth/schema/tsconfig.json new file mode 100644 index 0000000..5455dae --- /dev/null +++ b/packages/oauth/schema/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee558bf..bafb885 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,25 +61,6 @@ importers: specifier: ^5.9.2 version: 5.9.2 - examples/iracing-api-proxy: - dependencies: - '@iracing-data/api': - specifier: workspace:* - version: link:../../packages/api - express: - specifier: ^5.1.0 - version: 5.1.0 - devDependencies: - '@types/express': - specifier: ^5.0.3 - version: 5.0.3 - tsx: - specifier: ^4.19.0 - version: 4.20.5 - typescript: - specifier: ^5.9.2 - version: 5.9.2 - examples/kapps-hello-world: dependencies: '@iracing-data/ws': @@ -91,9 +72,15 @@ importers: '@iracing-data/api': specifier: workspace:* version: link:../../packages/api + '@iracing-data/api-router': + specifier: workspace:* + version: link:../../packages/api-router '@iracing-data/oauth-client': specifier: workspace:* version: link:../../packages/oauth/client + '@iracing-data/oauth-router': + specifier: workspace:* + version: link:../../packages/oauth/router axios: specifier: ^1.7.9 version: 1.8.2 @@ -254,6 +241,42 @@ importers: specifier: ^5.1.1 version: 5.1.1 + packages/api-client: + devDependencies: + '@iracing-data/api-schema-to-openapi': + specifier: workspace:* + version: link:../helpers/api-schema-to-openapi + '@openapitools/openapi-generator-cli': + specifier: ^2.25.0 + version: 2.25.0(@types/node@24.3.1) + + packages/api-router: + dependencies: + '@iracing-data/api': + specifier: workspace:* + version: link:../api + '@iracing-data/api-schema': + specifier: workspace:* + version: link:../api-schema + axios: + specifier: ^1.7.9 + version: 1.8.2 + better-call: + specifier: ^1.0.26 + version: 1.0.26 + zod: + specifier: ^4.1.12 + version: 4.1.12 + + packages/api-schema: + dependencies: + zod: + specifier: ^4.1.12 + version: 4.1.12 + zod-openapi: + specifier: ^5.4.3 + version: 5.4.3(zod@4.1.12) + packages/cli: dependencies: '@iracing-data/api': @@ -386,6 +409,25 @@ importers: specifier: ^5.9.2 version: 5.9.2 + packages/helpers/api-schema-to-openapi: + dependencies: + '@iracing-data/api-schema': + specifier: workspace:* + version: link:../../api-schema + commander: + specifier: ^14.0.2 + version: 14.0.2 + zod: + specifier: ^4.1.12 + version: 4.1.12 + zod-openapi: + specifier: ^5.4.3 + version: 5.4.3(zod@4.1.12) + devDependencies: + '@commander-js/extra-typings': + specifier: ^14.0.0 + version: 14.0.0(commander@14.0.2) + packages/helpers/iracing-json-schema-to-typescript: dependencies: commander: @@ -399,6 +441,25 @@ importers: specifier: ^13.1.0 version: 13.1.0(commander@14.0.0) + packages/helpers/oauth-schema-to-openapi: + dependencies: + '@iracing-data/oauth-schema': + specifier: workspace:* + version: link:../../oauth/schema + commander: + specifier: ^14.0.2 + version: 14.0.2 + zod: + specifier: ^4.1.12 + version: 4.1.12 + zod-openapi: + specifier: ^5.4.3 + version: 5.4.3(zod@4.1.12) + devDependencies: + '@commander-js/extra-typings': + specifier: ^14.0.0 + version: 14.0.0(commander@14.0.2) + packages/helpers/sync-car-assets: dependencies: '@commander-js/extra-typings': @@ -553,6 +614,27 @@ importers: specifier: ^4.0.17 version: 4.0.17 + packages/oauth/router: + dependencies: + '@better-fetch/fetch': + specifier: ^1.1.18 + version: 1.1.18 + '@iracing-data/oauth-client': + specifier: workspace:* + version: link:../client + better-call: + specifier: ^1.0.26 + version: 1.0.26 + zod: + specifier: ^4.1.12 + version: 4.1.12 + + packages/oauth/schema: + dependencies: + zod: + specifier: ^4.1.12 + version: 4.1.12 + packages: /@apidevtools/json-schema-ref-parser@11.9.3: @@ -579,6 +661,10 @@ packages: resolution: {integrity: sha512-rEFOE1MYIsBmoMJtQbl32PGHHXuG2hDxvEd7rUHE0vCBoFQVSDqaVs9hkZEtHCxRoY+CljXKFCOuJ8uxqw1LcA==} dev: false + /@borewit/text-codec@0.1.1: + resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} + dev: true + /@commander-js/extra-typings@13.1.0(commander@13.1.0): resolution: {integrity: sha512-q5P52BYb1hwVWE6dtID7VvuJWrlfbCv4klj7BjUUOqMz4jbSZD4C9fJ9lRjL2jnBGTg+gDDlaXN51rkWcLk4fg==} peerDependencies: @@ -594,6 +680,14 @@ packages: dependencies: commander: 14.0.0 + /@commander-js/extra-typings@14.0.0(commander@14.0.2): + resolution: {integrity: sha512-hIn0ncNaJRLkZrxBIp5AsW/eXEHNKYQBh0aPdoUqNgD+Io3NIykQqpKFyKcuasZhicGaEZJX/JBSIkZ4e5x8Dg==} + peerDependencies: + commander: ~14.0.0 + dependencies: + commander: 14.0.2 + dev: true + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1398,6 +1492,30 @@ packages: '@types/node': 24.3.1 dev: true + /@isaacs/balanced-match@4.0.1: + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + dev: true + + /@isaacs/brace-expansion@5.0.0: + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + dependencies: + '@isaacs/balanced-match': 4.0.1 + dev: true + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@jridgewell/resolve-uri@3.1.2: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1421,6 +1539,77 @@ packages: resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} dev: false + /@lukeed/csprng@1.1.0: + resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} + engines: {node: '>=8'} + dev: true + + /@nestjs/axios@4.0.1(@nestjs/common@11.1.6)(axios@1.12.2)(rxjs@7.8.2): + resolution: {integrity: sha512-68pFJgu+/AZbWkGu65Z3r55bTsCPlgyKaV4BSG8yUAD72q1PPuyVRgUwFv6BxdnibTUHlyxm06FmYWNC+bjN7A==} + peerDependencies: + '@nestjs/common': ^10.0.0 || ^11.0.0 + axios: ^1.3.1 + rxjs: ^7.0.0 + dependencies: + '@nestjs/common': 11.1.6(reflect-metadata@0.2.2)(rxjs@7.8.2) + axios: 1.12.2 + rxjs: 7.8.2 + dev: true + + /@nestjs/common@11.1.6(reflect-metadata@0.2.2)(rxjs@7.8.2): + resolution: {integrity: sha512-krKwLLcFmeuKDqngG2N/RuZHCs2ycsKcxWIDgcm7i1lf3sQ0iG03ci+DsP/r3FcT/eJDFsIHnKtNta2LIi7PzQ==} + peerDependencies: + class-transformer: '>=0.4.1' + class-validator: '>=0.13.2' + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + file-type: 21.0.0 + iterare: 1.2.1 + load-esm: 1.0.2 + reflect-metadata: 0.2.2 + rxjs: 7.8.2 + tslib: 2.8.1 + uid: 2.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@nestjs/core@11.1.6(@nestjs/common@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2): + resolution: {integrity: sha512-siWX7UDgErisW18VTeJA+x+/tpNZrJewjTBsRPF3JVxuWRuAB1kRoiJcxHgln8Lb5UY9NdvklITR84DUEXD0Cg==} + engines: {node: '>= 20'} + requiresBuild: true + peerDependencies: + '@nestjs/common': ^11.0.0 + '@nestjs/microservices': ^11.0.0 + '@nestjs/platform-express': ^11.0.0 + '@nestjs/websockets': ^11.0.0 + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true + dependencies: + '@nestjs/common': 11.1.6(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nuxt/opencollective': 0.4.1 + fast-safe-stringify: 2.1.1 + iterare: 1.2.1 + path-to-regexp: 8.2.0 + reflect-metadata: 0.2.2 + rxjs: 7.8.2 + tslib: 2.8.1 + uid: 2.0.2 + dev: true + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1442,6 +1631,61 @@ packages: fastq: 1.19.0 dev: true + /@nuxt/opencollective@0.4.1: + resolution: {integrity: sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==} + engines: {node: ^14.18.0 || >=16.10.0, npm: '>=5.10.0'} + hasBin: true + dependencies: + consola: 3.4.2 + dev: true + + /@nuxtjs/opencollective@0.3.2: + resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + consola: 2.15.3 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: true + + /@openapitools/openapi-generator-cli@2.25.0(@types/node@24.3.1): + resolution: {integrity: sha512-u/3VAbF8c68AXBgm8nBAdDPLPW/KgrtHz28yemf92zNB0iDZFGdRUX2W80Lzf177g6ctYLz0GIPHCOU0LTJegQ==} + engines: {node: '>=16'} + hasBin: true + requiresBuild: true + dependencies: + '@nestjs/axios': 4.0.1(@nestjs/common@11.1.6)(axios@1.12.2)(rxjs@7.8.2) + '@nestjs/common': 11.1.6(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nestjs/core': 11.1.6(@nestjs/common@11.1.6)(reflect-metadata@0.2.2)(rxjs@7.8.2) + '@nuxtjs/opencollective': 0.3.2 + axios: 1.12.2 + chalk: 4.1.2 + commander: 8.3.0 + compare-versions: 6.1.1 + concurrently: 9.2.1 + console.table: 0.10.0 + fs-extra: 11.3.2 + glob: 11.0.3 + inquirer: 8.2.7(@types/node@24.3.1) + proxy-agent: 6.5.0 + reflect-metadata: 0.2.2 + rxjs: 7.8.2 + tslib: 2.8.1 + transitivePeerDependencies: + - '@nestjs/microservices' + - '@nestjs/platform-express' + - '@nestjs/websockets' + - '@types/node' + - class-transformer + - class-validator + - debug + - encoding + - supports-color + dev: true + /@pkgr/core@0.2.9: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1489,6 +1733,25 @@ packages: engines: {node: '>=4'} dev: true + /@tokenizer/inflate@0.2.7: + resolution: {integrity: sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==} + engines: {node: '>=18'} + dependencies: + debug: 4.4.3 + fflate: 0.8.2 + token-types: 6.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@tokenizer/token@0.3.0: + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + dev: true + + /@tootallnate/quickjs-emscripten@0.23.0: + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + dev: true + /@tsconfig/node10@1.0.11: resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} dev: true @@ -1810,7 +2073,6 @@ packages: /agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - dev: false /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1831,12 +2093,22 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + /ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + dev: true + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + /ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + dev: true + /archive-type@4.0.0: resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} engines: {node: '>=4'} @@ -1926,6 +2198,13 @@ packages: printable-characters: 1.0.42 dev: false + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.8.1 + dev: true + /async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -1933,7 +2212,6 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false /atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} @@ -1961,6 +2239,16 @@ packages: - undici dev: false + /axios@1.12.2: + resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} + dependencies: + follow-redirects: 1.15.11 + form-data: 4.0.4 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + /axios@1.8.2: resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==} dependencies: @@ -1979,6 +2267,11 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + dev: true + /better-call@1.0.24: resolution: {integrity: sha512-iGqL29cstPp4xLD2MjKL1EmyAqQHjYS+cBMt4W27rPs3vf+kuqkVPA0NYaf7JciBOzVsJdNj4cbZWXC5TardWQ==} dependencies: @@ -1989,6 +2282,15 @@ packages: uncrypto: 0.1.3 dev: false + /better-call@1.0.26: + resolution: {integrity: sha512-/5AaTPC8IRXV5yWxpAI7eR2RNiGHq4q/mjBm9DiikIkmJhzuqO1Ub66oYYqJ3eBFF+6BfdtZFRnuW0me8T0Emg==} + dependencies: + '@better-auth/utils': 0.3.0 + '@better-fetch/fetch': 1.1.18 + rou3: 0.5.1 + set-cookie-parser: 2.7.2 + dev: false + /bl@1.2.3: resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} dependencies: @@ -1996,6 +2298,14 @@ packages: safe-buffer: 5.2.1 dev: true + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + /body-parser@2.2.0: resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} engines: {node: '>=18'} @@ -2121,6 +2431,23 @@ packages: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} dev: true + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true + /cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} @@ -2139,6 +2466,12 @@ packages: mimic-response: 1.0.1 dev: true + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + requiresBuild: true + dev: true + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -2157,7 +2490,6 @@ packages: engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - dev: false /commander@13.1.0: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} @@ -2167,14 +2499,56 @@ packages: resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} engines: {node: '>=20'} + /commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + engines: {node: '>=20'} + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true + + /compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /concurrently@9.2.1: + resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==} + engines: {node: '>=18'} + hasBin: true + dependencies: + chalk: 4.1.2 + rxjs: 7.8.2 + shell-quote: 1.8.3 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + dev: true + + /consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + dev: true + + /consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + dev: true + + /console.table@0.10.0: + resolution: {integrity: sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==} + engines: {node: '> 0.10'} + dependencies: + easy-table: 1.1.0 + dev: true + /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -2233,6 +2607,11 @@ packages: which: 2.0.2 dev: true + /data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + dev: true + /data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -2378,6 +2757,13 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + requiresBuild: true + dependencies: + clone: 1.0.4 + dev: true + /define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2396,10 +2782,18 @@ packages: object-keys: 1.1.1 dev: true + /degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + dev: true + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dev: false /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} @@ -2451,6 +2845,16 @@ packages: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} dev: true + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /easy-table@1.1.0: + resolution: {integrity: sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==} + optionalDependencies: + wcwidth: 1.0.1 + dev: true + /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: false @@ -2458,6 +2862,10 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + /encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} @@ -2619,6 +3027,18 @@ packages: engines: {node: '>=10'} dev: true + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + /eslint-config-prettier@10.1.8(eslint@9.34.0): resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true @@ -2801,6 +3221,12 @@ packages: eslint-visitor-keys: 4.2.1 dev: true + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esquery@1.6.0: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} @@ -2927,7 +3353,6 @@ packages: /fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - dev: false /fastq@1.19.0: resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} @@ -2952,6 +3377,17 @@ packages: picomatch: 4.0.2 dev: false + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + dev: true + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + /file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -2964,6 +3400,18 @@ packages: engines: {node: '>=6'} dev: true + /file-type@21.0.0: + resolution: {integrity: sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg==} + engines: {node: '>=20'} + dependencies: + '@tokenizer/inflate': 0.2.7 + strtok3: 10.3.4 + token-types: 6.1.1 + uint8array-extras: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: true + /file-type@3.9.0: resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} engines: {node: '>=0.10.0'} @@ -3047,7 +3495,6 @@ packages: peerDependenciesMeta: debug: optional: true - dev: false /for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} @@ -3056,6 +3503,14 @@ packages: is-callable: 1.2.7 dev: true + /foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + dev: true + /form-data@4.0.4: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} @@ -3065,7 +3520,6 @@ packages: es-set-tostringtag: 2.1.0 hasown: 2.0.2 mime-types: 2.1.35 - dev: false /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -3097,6 +3551,15 @@ packages: universalify: 2.0.1 dev: true + /fs-extra@11.3.2: + resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -3185,6 +3648,17 @@ packages: resolve-pkg-maps: 1.0.0 dev: true + /get-uri@6.0.5: + resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} + engines: {node: '>= 14'} + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + dev: true + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3199,6 +3673,19 @@ packages: is-glob: 4.0.3 dev: true + /glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + hasBin: true + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.1.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.1 + dev: true + /globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -3339,6 +3826,26 @@ packages: toidentifier: 1.0.1 dev: false + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + dev: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -3415,6 +3922,29 @@ packages: rxjs: 7.8.2 dev: true + /inquirer@8.2.7(@types/node@24.3.1): + resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} + engines: {node: '>=12.0.0'} + dependencies: + '@inquirer/external-editor': 1.0.1(@types/node@24.3.1) + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.2 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 6.2.0 + transitivePeerDependencies: + - '@types/node' + dev: true + /internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -3432,6 +3962,11 @@ packages: p-is-promise: 1.1.0 dev: true + /ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + engines: {node: '>= 12'} + dev: true + /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -3532,6 +4067,11 @@ packages: dependencies: is-extglob: 2.1.1 + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + /is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3628,6 +4168,11 @@ packages: which-typed-array: 1.1.19 dev: true + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + /is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -3668,6 +4213,18 @@ packages: is-object: 1.0.2 dev: true + /iterare@1.2.1: + resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} + engines: {node: '>=6'} + dev: true + + /jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + dependencies: + '@isaacs/cliui': 8.0.2 + dev: true + /joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -3746,6 +4303,11 @@ packages: type-check: 0.4.0 dev: true + /load-esm@1.0.2: + resolution: {integrity: sha512-nVAvWk/jeyrWyXEAs84mpQCYccxRqgKY4OznLuJhJCa0XsPSfdOIr2zvBZEj3IHEHbX97jjscKRRV539bW0Gpw==} + engines: {node: '>=13.2.0'} + dev: true + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -3763,6 +4325,14 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + /long@5.3.1: resolution: {integrity: sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==} @@ -3776,6 +4346,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /lru-cache@11.2.2: + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} + engines: {node: 20 || >=22} + dev: true + + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: true + /luxon@3.7.2: resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} engines: {node: '>=12'} @@ -3830,7 +4410,6 @@ packages: /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - dev: false /mime-db@1.54.0: resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} @@ -3841,7 +4420,6 @@ packages: engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - dev: false /mime-types@3.0.1: resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} @@ -3850,11 +4428,23 @@ packages: mime-db: 1.54.0 dev: false + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} dev: true + /minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + dependencies: + '@isaacs/brace-expansion': 5.0.0 + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -3871,9 +4461,18 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true + /mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3887,6 +4486,23 @@ packages: engines: {node: '>= 0.6'} dev: false + /netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + dev: true + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + /normalize-url@2.0.1: resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==} engines: {node: '>=4'} @@ -3972,6 +4588,13 @@ packages: dependencies: wrappy: 1.0.2 + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + /optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -3984,6 +4607,21 @@ packages: word-wrap: 1.2.5 dev: true + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -4041,6 +4679,34 @@ packages: p-finally: 1.0.0 dev: true + /pac-proxy-agent@7.2.0: + resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} + engines: {node: '>= 14'} + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.4 + debug: 4.4.3 + get-uri: 6.0.5 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + dev: true + + /pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + dev: true + + /package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + dev: true + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4067,10 +4733,17 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true + /path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + dependencies: + lru-cache: 11.2.2 + minipass: 7.1.2 + dev: true + /path-to-regexp@8.2.0: resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} engines: {node: '>=16'} - dev: false /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -4246,9 +4919,24 @@ packages: ipaddr.js: 1.9.1 dev: false + /proxy-agent@6.5.0: + resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 7.18.3 + pac-proxy-agent: 7.2.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + dev: true + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false /pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} @@ -4312,11 +5000,24 @@ packages: util-deprecate: 1.0.2 dev: true + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + /real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} dev: false + /reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + dev: true + /reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -4376,6 +5077,14 @@ packages: lowercase-keys: 1.0.1 dev: true + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4398,6 +5107,11 @@ packages: - supports-color dev: false + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + /run-async@3.0.0: resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} engines: {node: '>=0.12.0'} @@ -4578,6 +5292,11 @@ packages: engines: {node: '>=8'} dev: true + /shell-quote@1.8.3: + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} + dev: true + /side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -4614,10 +5333,38 @@ packages: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true + + /socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + dev: true + + /socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + dependencies: + ip-address: 10.1.0 + smart-buffer: 4.2.0 + dev: true + /sonic-boom@4.2.0: resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} dependencies: @@ -4645,6 +5392,13 @@ packages: is-plain-obj: 1.1.0 dev: true + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dev: true + optional: true + /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -4676,6 +5430,15 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + dev: true + /string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -4720,6 +5483,13 @@ packages: dependencies: ansi-regex: 5.0.1 + /strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.2.2 + dev: true + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -4748,6 +5518,13 @@ packages: escape-string-regexp: 1.0.5 dev: true + /strtok3@10.3.4: + resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} + engines: {node: '>=18'} + dependencies: + '@tokenizer/token': 0.3.0 + dev: true + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -4755,6 +5532,13 @@ packages: has-flag: 4.0.0 dev: true + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -4837,6 +5621,15 @@ packages: engines: {node: '>=0.6'} dev: false + /token-types@6.1.1: + resolution: {integrity: sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ==} + engines: {node: '>=14.16'} + dependencies: + '@borewit/text-codec': 0.1.1 + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + dev: true + /tough-cookie@5.1.1: resolution: {integrity: sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==} engines: {node: '>=16'} @@ -4844,6 +5637,15 @@ packages: tldts: 6.1.77 dev: false + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + /trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} engines: {node: '>=0.10.0'} @@ -5004,6 +5806,18 @@ packages: hasBin: true dev: true + /uid@2.0.2: + resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==} + engines: {node: '>=8'} + dependencies: + '@lukeed/csprng': 1.1.0 + dev: true + + /uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} + engines: {node: '>=18'} + dev: true + /unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} @@ -5072,6 +5886,23 @@ packages: engines: {node: '>= 0.8'} dev: false + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + /which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -5155,6 +5986,15 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -5217,6 +6057,19 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + /zod-openapi@5.4.3(zod@4.1.12): + resolution: {integrity: sha512-6kJ/gJdvHZtuxjYHoMtkl2PixCwRuZ/s79dVkEr7arHvZGXfx7Cvh53X3HfJ5h9FzGelXOXlnyjwfX0sKEPByw==} + engines: {node: '>=20'} + peerDependencies: + zod: ^3.25.74 || ^4.0.0 + dependencies: + zod: 4.1.12 + dev: false + /zod@4.0.17: resolution: {integrity: sha512-1PHjlYRevNxxdy2JZ8JcNAw7rX8V9P1AKkP+x/xZfxB0K5FYfuV+Ug6P/6NVSR2jHQ+FzDDoDHS04nYUsOIyLQ==} dev: false + + /zod@4.1.12: + resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} + dev: false From fb86534aaadf6662359ac0a4d05892992be2ff0a Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Tue, 11 Nov 2025 16:02:42 -0500 Subject: [PATCH 06/28] Update readme --- .../helpers/api-schema-to-openapi/README.md | 23 ++++++++++++++-- .../helpers/oauth-schema-to-openapi/README.md | 27 ++++++++++++++++--- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/packages/helpers/api-schema-to-openapi/README.md b/packages/helpers/api-schema-to-openapi/README.md index e9c9701..6c52553 100644 --- a/packages/helpers/api-schema-to-openapi/README.md +++ b/packages/helpers/api-schema-to-openapi/README.md @@ -4,8 +4,27 @@ Helper function to generate OpenAPI (Swagger) spec from [iRacing API zod schema] ## Installation -_Coming soon_ +```sh +$ pnpm add -D @iracing/data/api-schema-to-openapi +``` ## Usage -_Coming soon_ +### CLI + +```sh +$ iracing-api-openapi -f openapi.json -o ~/Desktop +``` + +### Programmatically + +```ts +import { generateOpenAPISpect } from "@iracing-data/api-schema-to-openapi"; + +await generateOpenAPISpec({ + fileName: "openapi.json", + outputDir: "~/Desktop", +}); + +console.log("Output schema to", path.join(output, file)); +``` diff --git a/packages/helpers/oauth-schema-to-openapi/README.md b/packages/helpers/oauth-schema-to-openapi/README.md index e9c9701..de9393c 100644 --- a/packages/helpers/oauth-schema-to-openapi/README.md +++ b/packages/helpers/oauth-schema-to-openapi/README.md @@ -1,11 +1,30 @@ -# @iracing-data/api-schema-to-openapi-schema +# @iracing-data/api-schema-to-openapi -Helper function to generate OpenAPI (Swagger) spec from [iRacing API zod schema](../../api-schema/). +Helper function to generate OpenAPI (Swagger) spec from [iRacing OAuth API zod schema](../../oauth/schema/). ## Installation -_Coming soon_ +```sh +$ pnpm add -D @iracing/data/oauth-schema-to-openapi +``` ## Usage -_Coming soon_ +### CLI + +```sh +$ iracing-oauth-api-openapi -f openapi.json -o ~/Desktop +``` + +### Programmatically + +```ts +import { generateOpenAPISpect } from "@iracing-data/oauth-schema-to-openapi"; + +await generateOpenAPISpec({ + fileName: "openapi-oauth.json", + outputDir: "~/Desktop", +}); + +console.log("Output schema to", path.join(output, file)); +``` From 9f415dc84868927bc1a86781a28ad913002f5445 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Tue, 11 Nov 2025 16:09:31 -0500 Subject: [PATCH 07/28] Add type exports --- packages/oauth/schema/src/schema.ts | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/oauth/schema/src/schema.ts b/packages/oauth/schema/src/schema.ts index ff5b232..4e8089c 100644 --- a/packages/oauth/schema/src/schema.ts +++ b/packages/oauth/schema/src/schema.ts @@ -170,3 +170,36 @@ export const IRacingOAuthRevokeCurrentSessionInputSchema = z.object({ export const IRacingOAuthRevokeSessionsInputSchema = z.object({ sessionIds: z.array(z.string()), }); + +// Types +export type IRacingOAuthClientId = z.infer; +export type IRacingOAuthRequestIdHeader = z.infer< + typeof IRacingOAuthRequestIdHeaderSchema +>; +export type IRacingOAuthHeaders = z.infer; +export type IRacingOAuthAuthorizeParameters = z.infer< + typeof IRacingOAuthAuthorizeParametersSchema +>; +export type IRacingOAuthTokenAuthorizationCodeGrantParameters = z.infer< + typeof IRacingOAuthTokenAuthorizationCodeGrantParametersSchema +>; +export type IRacingOAuthTokenRefreshGrantParameters = z.infer< + typeof IRacingOAuthTokenRefreshGrantParametersSchema +>; +export type IRacingOAuthTokenParameters = z.infer< + typeof IRacingOAuthTokenParametersSchema +>; +export type IRacingOAuthTokenResponse = z.infer< + typeof IRacingOAuthTokenResponseSchema +>; +export type IRacingOAuthSession = z.infer; +export type IRacingOAuthSessions = z.infer; +export type IRacingOAuthProfileResponse = z.infer< + typeof IRacingOAuthProfileResponseSchema +>; +export type IRacingOAuthRevokeCurrentSessionParameters = z.infer< + typeof IRacingOAuthRevokeCurrentSessionInputSchema +>; +export type IRacingOAuthRevokeSessionsParameters = z.infer< + typeof IRacingOAuthRevokeSessionsInputSchema +>; From 39a9cc0440ad0176ebf340bbd141b71adce71b3d Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Tue, 11 Nov 2025 17:46:05 -0500 Subject: [PATCH 08/28] update type export --- packages/api-schema/src/schema.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/api-schema/src/schema.ts b/packages/api-schema/src/schema.ts index 72bb3c0..c00fa4b 100644 --- a/packages/api-schema/src/schema.ts +++ b/packages/api-schema/src/schema.ts @@ -723,6 +723,9 @@ export type IRacingCustomerId = z.infer; export type IRacingCategory = z.infer; export type IRacingDivision = z.infer; export type IRacingAPIResponse = z.infer; +export type IRacingDriverStatsByCategoryPath = z.infer< + typeof IRacingDriverStatsByCategoryPathSchema +>; export type IRacingErrorResponse = z.infer; export type IRacingMaintenanceResponse = z.infer< From 88407582a700520238f1e12d8a650e1ce3f2e0ff Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Wed, 12 Nov 2025 13:37:17 -0500 Subject: [PATCH 09/28] update error responses --- packages/api-schema/src/schema.ts | 55 ++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/packages/api-schema/src/schema.ts b/packages/api-schema/src/schema.ts index c00fa4b..5fdff10 100644 --- a/packages/api-schema/src/schema.ts +++ b/packages/api-schema/src/schema.ts @@ -53,15 +53,15 @@ export const IRacingRateLimitHeadersSchema = z "Headers included with every request, indicating current rate limit status for the requesting session.", }); -export const IRacingErrorResponseSchema = z.object({ - error: z.string(), - message: z.string().optional(), -}); - -export const IRacingMaintenanceResponseSchema = z.object({ - ...IRacingErrorResponseSchema.shape, - note: z.string().optional(), -}); +export const IRacingErrorResponseSchema = z + .object({ + error: z.string(), + message: z.string().optional(), + note: z.string().optional(), + }) + .meta({ + id: "errorResponse", + }); export const IRacingCustomerIdSchema = z.coerce.number().meta({ description: "Numeric ID of a customer on iRacing.", @@ -702,6 +702,28 @@ export const IRacingTimeAttackMemberSeasonResultsParametersSchema = z.object({ ta_comp_season_id: z.number(), }); +export const IRacingParametersDocsResponseSchema = z.object({ + type: z.string(), + note: z.string().optional(), + required: z.boolean().optional(), +}); + +export const IRacingServiceMethodDocsResponseSchema = z.object({ + link: z.url(), + parameters: z.record(z.string(), IRacingParametersDocsResponseSchema), + expirationSeconds: z.number().optional(), +}); + +export const IRacingServiceDocsResponseSchema = z.record( + z.string(), + IRacingServiceMethodDocsResponseSchema +); + +export const IRacingServicesDocsResponseSchema = z.record( + z.string(), + IRacingServiceDocsResponseSchema +); + /** * Types */ @@ -728,9 +750,6 @@ export type IRacingDriverStatsByCategoryPath = z.infer< >; export type IRacingErrorResponse = z.infer; -export type IRacingMaintenanceResponse = z.infer< - typeof IRacingMaintenanceResponseSchema ->; export type IRacingEventTypePractice = z.infer< typeof IRacingEventTypePracticeSchema @@ -894,3 +913,15 @@ export type IRacingTeamGetParameters = z.infer< export type IRacingTimeAttackMemberSeasonResultsParameters = z.infer< typeof IRacingTimeAttackMemberSeasonResultsParametersSchema >; +export type IRacingParametersDocsResponse = z.infer< + typeof IRacingParametersDocsResponseSchema +>; +export type IRacingServiceMethodDocsResponse = z.infer< + typeof IRacingServiceMethodDocsResponseSchema +>; +export type IRacingServiceDocsResponse = z.infer< + typeof IRacingServiceDocsResponseSchema +>; +export type IRacingServicesDocsResponse = z.infer< + typeof IRacingServicesDocsResponseSchema +>; From dc3e19e4a59cd78372ca5962e0893846e1a60221 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Wed, 12 Nov 2025 13:37:40 -0500 Subject: [PATCH 10/28] update responses and operations --- .../api-schema-to-openapi/src/index.ts | 361 ++++++++++++++---- 1 file changed, 282 insertions(+), 79 deletions(-) diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index 4a86ad8..e780565 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -15,7 +15,6 @@ import { IRacingLeagueSeasonsParametersSchema, IRacingLeagueSeasonStandingsParametersSchema, IRacingLookupDriversParametersSchema, - IRacingMaintenanceResponseSchema, IRacingMemberAwardInstancesParametersSchema, IRacingMemberAwardsParametersSchema, IRacingMemberChartDataParametersSchema, @@ -38,6 +37,9 @@ import { IRacingSeriesSeasonListParametersSchema, IRacingSeriesSeasonScheduleParametersSchema, IRacingSeriesSeasonsParametersSchema, + IRacingServiceDocsResponseSchema, + IRacingServiceMethodDocsResponseSchema, + IRacingServicesDocsResponseSchema, IRacingStatsMemberBestsParametersSchema, IRacingStatsMemberCareerParametersSchema, IRacingStatsMemberDivisionParametersSchema, @@ -101,6 +103,26 @@ export async function generateOpenAPISpec({ }, }, }, + Docs: { + description: "Success", + content: { + "application/json": { schema: IRacingServicesDocsResponseSchema }, + }, + }, + ServiceDocs: { + description: "Success", + content: { + "application/json": { schema: IRacingServiceDocsResponseSchema }, + }, + }, + ServiceMethodDocs: { + description: "Success", + content: { + "application/json": { + schema: IRacingServiceMethodDocsResponseSchema, + }, + }, + }, RateLimited: { description: "Rate limited", headers: IRacingRateLimitHeadersSchema, @@ -114,7 +136,7 @@ export async function generateOpenAPISpec({ description: "Maintenance", content: { "application/json": { - schema: IRacingMaintenanceResponseSchema, + schema: IRacingErrorResponseSchema, }, }, }, @@ -216,645 +238,753 @@ export async function generateOpenAPISpec({ paths: { "/data/doc": { get: { + operationId: "getDocs", tags: ["doc"], responses: { + 200: { $ref: "#/components/responses/Docs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/carclass": { get: { + operationId: "getCarClassDocs", tags: ["doc", "carclass"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/carclass/get": { get: { - tags: ["doc"], + operationId: "getCarClassGetDocs", + tags: ["doc", "carclass"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/car": { get: { - tags: ["doc"], + operationId: "getCarDocs", + tags: ["doc", "car"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/car/assets": { get: { - tags: ["doc"], + operationId: "getCarAssetsDocs", + tags: ["doc", "car"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/car/get": { get: { - tags: ["doc"], + operationId: "getCarGetDocs", + tags: ["doc", "car"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/constants": { get: { - tags: ["doc"], + operationId: "getConstantsDocs", + tags: ["doc", "constants"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/constants/categories": { get: { - tags: ["doc"], + operationId: "getConstantsCategoriesDocs", + tags: ["doc", "constants"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/constants/divisions": { get: { - tags: ["doc"], + operationId: "getConstantsDivisionsDocs", + tags: ["doc", "constants"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/constants/event_types": { get: { - tags: ["doc"], + operationId: "getConstantsEventTypesDocs", + tags: ["doc", "constants"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/driver_stats_by_category": { get: { - tags: ["doc"], + operationId: "getDriverStatsByCategoryDocs", + tags: ["doc", "driver_stats"], + responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + }, + }, + }, + "/data/doc/driver_stats_by_category/{category}": { + get: { + operationId: "getDriverStatsByCategoryCategoryDocs", + tags: ["doc", "driver_stats"], + requestParams: { + path: IRacingDriverStatsByCategoryPathSchema, + }, responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/driver_stats_by_category/oval": { get: { - tags: ["doc"], + tags: ["doc", "driver_stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/driver_stats_by_category/sports_car": { get: { - tags: ["doc"], + tags: ["doc", "driver_stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/driver_stats_by_category/formula_car": { get: { - tags: ["doc"], + tags: ["doc", "driver_stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/driver_stats_by_category/road": { get: { - tags: ["doc"], + tags: ["doc", "driver_stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/driver_stats_by_category/dirt_oval": { get: { - tags: ["doc"], + tags: ["doc", "driver_stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/driver_stats_by_category/dirt_road": { get: { - tags: ["doc"], + tags: ["doc", "driver_stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/hosted": { get: { - tags: ["doc"], + tags: ["doc", "hosted"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/hosted/combined_sessions": { get: { - tags: ["doc"], + tags: ["doc", "hosted"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/hosted/sessions": { get: { - tags: ["doc"], + tags: ["doc", "hosted"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league": { get: { - tags: ["doc"], + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/cust_league_sessions": { get: { - tags: ["doc"], + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/directory": { get: { - tags: ["doc"], + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/get": { get: { - tags: ["doc"], + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/get_points_systems": { get: { - tags: ["doc"], + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/membership": { get: { - tags: ["doc"], + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/roster": { get: { - tags: ["doc"], + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/seasons": { get: { + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/season_standings": { get: { + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/league/season_sessions": { get: { + tags: ["doc", "league"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/lookup": { get: { - tags: ["doc"], + tags: ["doc", "lookup"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/lookup/countries": { get: { - tags: ["doc"], + tags: ["doc", "lookup"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/lookup/drivers": { get: { - tags: ["doc"], + tags: ["doc", "lookup"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/lookup/flairs": { get: { - tags: ["doc"], + tags: ["doc", "lookup"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/lookup/get": { get: { - tags: ["doc"], + tags: ["doc", "lookup"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/lookup/licenses": { get: { - tags: ["doc"], + tags: ["doc", "lookup"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member/awards": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member/award_instances": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member/chart_data": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member/get": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member/info": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member/participation_credits": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/member/profile": { get: { - tags: ["doc"], + tags: ["doc", "member"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results/get": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results/event_log": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results/lap_chart_data": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results/lap_data": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results/search_hosted": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results/search_series": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/results/season_results": { get: { - tags: ["doc"], + tags: ["doc", "results"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/season": { get: { - tags: ["doc"], + tags: ["doc", "season"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/season/list": { get: { - tags: ["doc"], + tags: ["doc", "season"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/season/race_guide": { get: { - tags: ["doc"], + tags: ["doc", "season"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/season/spectator_subsessionids": { get: { - tags: ["doc"], + tags: ["doc", "season"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/season/spectator_subsessionids_detail": { get: { - tags: ["doc"], + tags: ["doc", "season"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series/assets": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series/get": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series/past_seasons": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series/seasons": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series/season_list": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series/season_schedule": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/series/stats_series": { get: { - tags: ["doc"], + tags: ["doc", "series"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/member_bests": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/member_career": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/member_division": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/member_recap": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/member_recent_races": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/member_summary": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/member_yearly": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/season_driver_standings": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/season_supersession_standings": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/season_team_standings": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/season_tt_standings": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/season_tt_results": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/season_qualify_results": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/stats/world_records": { get: { - tags: ["doc"], + tags: ["doc", "stats"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, "/data/doc/team": { get: { - tags: ["doc"], + tags: ["doc", "team"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -863,6 +993,7 @@ export async function generateOpenAPISpec({ get: { tags: ["doc", "team"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -871,6 +1002,7 @@ export async function generateOpenAPISpec({ get: { tags: ["doc", "team"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -879,6 +1011,7 @@ export async function generateOpenAPISpec({ get: { tags: ["doc", "time_attack"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -887,6 +1020,7 @@ export async function generateOpenAPISpec({ get: { tags: ["doc", "time_attack"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -895,6 +1029,7 @@ export async function generateOpenAPISpec({ get: { tags: ["doc", "track"], responses: { + 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -903,6 +1038,7 @@ export async function generateOpenAPISpec({ get: { tags: ["doc", "track"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -911,6 +1047,7 @@ export async function generateOpenAPISpec({ get: { tags: ["doc", "track"], responses: { + 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, @@ -930,6 +1067,7 @@ export async function generateOpenAPISpec({ }, "/data/car/assets": { get: { + operationId: "getCarAssets", description: "image paths are relative to https://images-static.iracing.com/", tags: ["car"], @@ -943,6 +1081,7 @@ export async function generateOpenAPISpec({ }, "/data/car/get": { get: { + operationId: "getCar", tags: ["car"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -954,6 +1093,7 @@ export async function generateOpenAPISpec({ }, "/data/constants/categories": { get: { + operationId: "getConstantsCategories", description: "Constant; returned directly as an array of objects", tags: ["constants"], responses: { @@ -966,6 +1106,7 @@ export async function generateOpenAPISpec({ }, "/data/constants/divisions": { get: { + operationId: "getConstantsDivisions", description: "Constant; returned directly as an array of objects", tags: ["constants"], responses: { @@ -978,6 +1119,7 @@ export async function generateOpenAPISpec({ }, "/data/constants/event_types": { get: { + operationId: "getConstantsEventTypes", description: "Constant; returned directly as an array of objects", tags: ["constants"], responses: { @@ -990,6 +1132,7 @@ export async function generateOpenAPISpec({ }, "/data/driver_stats_by_category/{category}": { get: { + operationId: "getDriverStatsByCategory", requestParams: { path: IRacingDriverStatsByCategoryPathSchema, }, @@ -1004,6 +1147,7 @@ export async function generateOpenAPISpec({ }, "/data/hosted/combined_sessions": { get: { + operationId: "getHostedCombinedSessions", description: "Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.", requestParams: { @@ -1020,6 +1164,7 @@ export async function generateOpenAPISpec({ }, "/data/hosted/sessions": { get: { + operationId: "getHostedSessions", description: "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", tags: ["hosted"], @@ -1033,6 +1178,7 @@ export async function generateOpenAPISpec({ }, "/data/league/cust_league_sessions": { get: { + operationId: "getLeagueCustomerLeagueSessions", tags: ["league"], requestParams: { query: IRacingLeagueCustomerSessionsParametersSchema, @@ -1047,6 +1193,7 @@ export async function generateOpenAPISpec({ }, "/data/league/directory": { get: { + operationId: "getLeagueDirectory", tags: ["league"], requestParams: { query: IRacingLeagueDirectoryParametersSchema, @@ -1061,6 +1208,7 @@ export async function generateOpenAPISpec({ }, "/data/league/get": { get: { + operationId: "getLeague", tags: ["league"], requestParams: { query: IRacingLeagueGetParametersSchema, @@ -1075,6 +1223,7 @@ export async function generateOpenAPISpec({ }, "/data/league/get_points_systems": { get: { + operationId: "getLeaguePointsSystems", tags: ["league"], requestParams: { query: IRacingLeagueGetPointsSystemsParametersSchema, @@ -1089,6 +1238,7 @@ export async function generateOpenAPISpec({ }, "/data/league/membership": { get: { + operationId: "getLeagueMembership", tags: ["league"], requestParams: { query: IRacingLeagueMembershipParametersSchema, @@ -1103,6 +1253,7 @@ export async function generateOpenAPISpec({ }, "/data/league/roster": { get: { + operationId: "getLeagueRoster", tags: ["league"], requestParams: { query: IRacingLeagueRosterParametersSchema, @@ -1117,6 +1268,7 @@ export async function generateOpenAPISpec({ }, "/data/league/seasons": { get: { + operationId: "getLeagueSeasons", tags: ["league"], requestParams: { query: IRacingLeagueSeasonsParametersSchema, @@ -1131,6 +1283,7 @@ export async function generateOpenAPISpec({ }, "/data/league/season_standings": { get: { + operationId: "getLeagueSeasonStandings", tags: ["league"], requestParams: { query: IRacingLeagueSeasonStandingsParametersSchema, @@ -1145,6 +1298,7 @@ export async function generateOpenAPISpec({ }, "/data/league/season_sessions": { get: { + operationId: "getLeagueSeasonSessions", tags: ["league"], requestParams: { query: IRacingLeagueSeasonSessionsParametersSchema, @@ -1159,6 +1313,7 @@ export async function generateOpenAPISpec({ }, "/data/lookup/countries": { get: { + operationId: "getLookupCountries", tags: ["lookup"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1170,6 +1325,7 @@ export async function generateOpenAPISpec({ }, "/data/lookup/flairs": { get: { + operationId: "getLookupFlairs", tags: ["lookup"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1181,6 +1337,7 @@ export async function generateOpenAPISpec({ }, "/data/lookup/licenses": { get: { + operationId: "getLookupLicenses", tags: ["lookup"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1192,6 +1349,7 @@ export async function generateOpenAPISpec({ }, "/data/lookup/drivers": { get: { + operationId: "getLookupDrivers", requestParams: { query: IRacingLookupDriversParametersSchema, }, @@ -1206,6 +1364,7 @@ export async function generateOpenAPISpec({ }, "/data/lookup/get": { get: { + operationId: "getLookup", // requestParams: { // query: z.record(z.string(), z.string()), // }, @@ -1220,6 +1379,7 @@ export async function generateOpenAPISpec({ }, "/data/member/awards": { get: { + operationId: "getMemberAwards", requestParams: { query: IRacingMemberAwardsParametersSchema, }, @@ -1234,6 +1394,7 @@ export async function generateOpenAPISpec({ }, "/data/member/award_instances": { get: { + operationId: "getMemberAwardInstances", requestParams: { query: IRacingMemberAwardInstancesParametersSchema, }, @@ -1248,6 +1409,7 @@ export async function generateOpenAPISpec({ }, "/data/member/chart_data": { get: { + operationId: "getMemberChartData", tags: ["member"], requestParams: { query: IRacingMemberChartDataParametersSchema, @@ -1262,7 +1424,11 @@ export async function generateOpenAPISpec({ }, "/data/member/get": { get: { + operationId: "getMember", tags: ["member"], + externalDocs: { + url: "/data/doc/member/get", + }, requestParams: { query: IRacingMemberGetParametersSchema, }, @@ -1276,6 +1442,7 @@ export async function generateOpenAPISpec({ }, "/data/member/info": { get: { + operationId: "getMemberInfo", tags: ["member"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1287,6 +1454,7 @@ export async function generateOpenAPISpec({ }, "/data/member/participation_credits": { get: { + operationId: "getMemberParticipationCredits", tags: ["member"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1298,7 +1466,7 @@ export async function generateOpenAPISpec({ }, "/data/member/profile": { get: { - operationId: "getProfile", + operationId: "getMemberProfile", summary: "Gets a requested user's profile.", requestParams: { query: IRacingMemberProfileParametersSchema, @@ -1314,6 +1482,7 @@ export async function generateOpenAPISpec({ }, "/data/results/get": { get: { + operationId: "getResults", tags: ["results"], requestParams: { query: IRacingResultsGetParametersSchema, @@ -1328,6 +1497,7 @@ export async function generateOpenAPISpec({ }, "/data/results/event_log": { get: { + operationId: "getResultsEventLog", tags: ["results"], requestParams: { query: IRacingResultsEventLogParametersSchema, @@ -1342,6 +1512,7 @@ export async function generateOpenAPISpec({ }, "/data/results/lap_chart_data": { get: { + operationId: "getResultsLapChartData", tags: ["results"], requestParams: { query: IRacingResultsLapChartDataParametersSchema, @@ -1356,6 +1527,7 @@ export async function generateOpenAPISpec({ }, "/data/results/lap_data": { get: { + operationId: "getResultsLapData", tags: ["results"], requestParams: { query: IRacingResultsLapDataParametersSchema, @@ -1370,6 +1542,7 @@ export async function generateOpenAPISpec({ }, "/data/results/search_hosted": { get: { + operationId: "getResultsSearchHosted", tags: ["results"], requestParams: { query: IRacingResultsSearchHostedParametersSchema, @@ -1384,6 +1557,7 @@ export async function generateOpenAPISpec({ }, "/data/results/search_series": { get: { + operationId: "getResultsSearchSeries", tags: ["results"], requestParams: { query: IRacingResultsSearchSeriesParametersSchema, @@ -1398,6 +1572,7 @@ export async function generateOpenAPISpec({ }, "/data/results/season_results": { get: { + operationId: "getResultsSeasonResults", tags: ["results"], requestParams: { query: IRacingResultsSeasonResultsParametersSchema, @@ -1412,6 +1587,7 @@ export async function generateOpenAPISpec({ }, "/data/season/list": { get: { + operationId: "getSeasonList", requestParams: { query: IRacingSeasonListParametersSchema, }, @@ -1426,6 +1602,7 @@ export async function generateOpenAPISpec({ }, "/data/season/race_guide": { get: { + operationId: "getSeasonRaceGuide", requestParams: { query: IRacingSeasonRaceGuideParametersSchema, }, @@ -1440,6 +1617,7 @@ export async function generateOpenAPISpec({ }, "/data/series/assets": { get: { + operationId: "getSeriesAssets", tags: ["series"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1451,6 +1629,7 @@ export async function generateOpenAPISpec({ }, "/data/series/get": { get: { + operationId: "getSeries", tags: ["series"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1462,6 +1641,7 @@ export async function generateOpenAPISpec({ }, "/data/series/past_seasons": { get: { + operationId: "getSeriesPastSeasons", requestParams: { query: IRacingSeriesPastSeasonsParametersSchema, }, @@ -1476,6 +1656,7 @@ export async function generateOpenAPISpec({ }, "/data/series/seasons": { get: { + operationId: "getSeriesSeasons", requestParams: { query: IRacingSeriesSeasonsParametersSchema, }, @@ -1490,6 +1671,7 @@ export async function generateOpenAPISpec({ }, "/data/series/season_list": { get: { + operationId: "getSeriesSeasonList", requestParams: { query: IRacingSeriesSeasonListParametersSchema, }, @@ -1504,6 +1686,7 @@ export async function generateOpenAPISpec({ }, "/data/series/season_schedule": { get: { + operationId: "getSeriesSeasonSchedule", requestParams: { query: IRacingSeriesSeasonScheduleParametersSchema, }, @@ -1518,6 +1701,7 @@ export async function generateOpenAPISpec({ }, "/data/series/stats_series": { get: { + operationId: "getSeriesStatsSeries", tags: ["series"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1529,6 +1713,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/member_bests": { get: { + operationId: "getStatsMemberBests", requestParams: { query: IRacingStatsMemberBestsParametersSchema, }, @@ -1543,6 +1728,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/member_career": { get: { + operationId: "getStatsMemberCareer", requestParams: { query: IRacingStatsMemberCareerParametersSchema, }, @@ -1557,6 +1743,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/member_division": { get: { + operationId: "getStatsMemberDivision", requestParams: { query: IRacingStatsMemberDivisionParametersSchema, }, @@ -1571,6 +1758,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/member_recap": { get: { + operationId: "getStatsMemberRecap", requestParams: { query: IRacingStatsMemberRecapParametersSchema, }, @@ -1585,6 +1773,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/member_recent_races": { get: { + operationId: "getStatsMemberRecentRaces", requestParams: { query: IRacingStatsMemberRecentRacesParametersSchema, }, @@ -1599,6 +1788,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/member_summary": { get: { + operationId: "getStatsMemberSummary", requestParams: { query: IRacingStatsMemberSummaryParametersSchema, }, @@ -1613,6 +1803,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/member_yearly": { get: { + operationId: "getStatsMemberYearly", requestParams: { query: IRacingStatsMemberYearlyParametersSchema, }, @@ -1627,6 +1818,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/season_driver_standings": { get: { + operationId: "getStatsSeasonDriverStandings", requestParams: { query: IRacingStatsSeasonDriverStandingsParametersSchema, }, @@ -1641,6 +1833,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/season_supersession_standings": { get: { + operationId: "getStatsSeasonSupersessionStandings", requestParams: { query: IRacingStatsSeasonSupersessionStandingsParametersSchema, }, @@ -1655,6 +1848,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/season_team_standings": { get: { + operationId: "getStatsSeasonTeamStandings", requestParams: { query: IRacingStatsSeasonTeamStandingsParametersSchema, }, @@ -1669,6 +1863,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/season_time_trial_standings": { get: { + operationId: "getStatsSeasonTimeTrialStandings", requestParams: { query: IRacingStatsSeasonTTStandingsParametersSchema, }, @@ -1683,6 +1878,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/season_time_trial_results": { get: { + operationId: "getStatsSeasonTimeTrialResults", requestParams: { query: IRacingStatsSeasonTTResultsParametersSchema, }, @@ -1697,6 +1893,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/season_qualify_results": { get: { + operationId: "getStatsSeasonQualifyResults", requestParams: { query: IRacingStatsSeasonQualifyResultsParametersSchema, }, @@ -1711,6 +1908,7 @@ export async function generateOpenAPISpec({ }, "/data/stats/world_records": { get: { + operationId: "getStatsWorldRecords", requestParams: { query: IRacingStatsWorldRecordsParametersSchema, }, @@ -1725,6 +1923,7 @@ export async function generateOpenAPISpec({ }, "/data/team/get": { get: { + operationId: "getTeam", requestParams: { query: IRacingTeamGetParametersSchema, }, @@ -1739,6 +1938,7 @@ export async function generateOpenAPISpec({ }, "/data/team/membership": { get: { + operationId: "getTeamMembership", tags: ["team"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1750,6 +1950,7 @@ export async function generateOpenAPISpec({ }, "/data/time_attack/member_season_results": { get: { + operationId: "getTimeAttackMemberSeasonResults", requestParams: { query: IRacingTimeAttackMemberSeasonResultsParametersSchema, }, @@ -1764,6 +1965,7 @@ export async function generateOpenAPISpec({ }, "/data/track/assets": { get: { + operationId: "getTrackAssets", tags: ["track"], responses: { 200: { $ref: "#/components/responses/Success" }, @@ -1775,6 +1977,7 @@ export async function generateOpenAPISpec({ }, "/data/track/get": { get: { + operationId: "getTrack", tags: ["track"], responses: { 200: { $ref: "#/components/responses/Success" }, From 8c95b03eef315e9e65147326e96a3152896ed6ed Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Wed, 12 Nov 2025 13:38:31 -0500 Subject: [PATCH 11/28] add refresh --- packages/oauth/client/src/client.ts | 44 ++++++- packages/oauth/client/src/schema/oauth.ts | 2 +- pnpm-lock.yaml | 136 ++++++++++++++++++++-- 3 files changed, 167 insertions(+), 15 deletions(-) diff --git a/packages/oauth/client/src/client.ts b/packages/oauth/client/src/client.ts index 154b99b..e3f4dd9 100644 --- a/packages/oauth/client/src/client.ts +++ b/packages/oauth/client/src/client.ts @@ -4,6 +4,7 @@ import { IRacingOAuthClientMetadata, IRacingOAuthClientMetadataInput, IRacingOAuthClientMetadataSchema, + IRacingOAuthTokenResponse, IRacingOAuthTokenResponseSchema, StateStore, } from "./schema"; @@ -29,12 +30,13 @@ export class OAuthClient { this.stateStore = stateStore; } - async authorize({ signal }: { signal?: AbortSignal } = {}) { + /** + * Generates an Authorization URL for kicking off the OAuth flow. + * @returns The URL, verifier, and state parameter. + */ + async authorize() { const verifier = oauth.generateRandomCodeVerifier(); const challenge = await oauth.calculatePKCECodeChallenge(verifier); - - signal?.throwIfAborted(); - const state = oauth.generateRandomState(); await this.stateStore.set(state, { @@ -43,8 +45,6 @@ export class OAuthClient { appState: state, }); - signal?.throwIfAborted(); - const authorizationUrl = new URL(this.clientMetadata.authorizationUrl); authorizationUrl.searchParams.set("response_type", "code"); @@ -71,6 +71,12 @@ export class OAuthClient { return { url: authorizationUrl, verifier, state }; } + /** + * Given the parameters from the authorization server, + * fetches the token. + * @param params The query parameters from the authorization server. + * @returns The auth token. + */ async callback(params: URLSearchParams) { const stateParam = params.get("state"); const codeParam = params.get("code"); @@ -152,4 +158,30 @@ export class OAuthClient { return await IRacingOAuthTokenResponseSchema.parseAsync(result); } + + async refresh(token: string) { + const authorizationServer: oauth.AuthorizationServer = { + issuer: this.clientMetadata.issuer, + token_endpoint: this.clientMetadata.tokenUrl, + }; + + const client: oauth.Client = { + client_id: this.clientMetadata.clientId, + }; + + const response = await oauth.refreshTokenGrantRequest( + authorizationServer, + client, + oauth.None(), + token + ); + + const result = await oauth.processRefreshTokenResponse( + authorizationServer, + client, + response + ); + + return await IRacingOAuthTokenResponseSchema.parseAsync(result); + } } diff --git a/packages/oauth/client/src/schema/oauth.ts b/packages/oauth/client/src/schema/oauth.ts index c29c8b9..fb3babd 100644 --- a/packages/oauth/client/src/schema/oauth.ts +++ b/packages/oauth/client/src/schema/oauth.ts @@ -108,6 +108,6 @@ export type IRacingOAuthCallbackInput = z.infer< typeof IRacingOAuthCallbackSchema >; -export type IRacingOAuthCallbackResponse = z.infer< +export type IRacingOAuthTokenResponse = z.infer< typeof IRacingOAuthTokenResponseSchema >; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bafb885..85debb0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,15 +72,18 @@ importers: '@iracing-data/api': specifier: workspace:* version: link:../../packages/api + '@iracing-data/api-client': + specifier: workspace:* + version: link:../../packages/api-client '@iracing-data/api-router': specifier: workspace:* version: link:../../packages/api-router + '@iracing-data/api-schema': + specifier: workspace:* + version: link:../../packages/api-schema '@iracing-data/oauth-client': specifier: workspace:* version: link:../../packages/oauth/client - '@iracing-data/oauth-router': - specifier: workspace:* - version: link:../../packages/oauth/router axios: specifier: ^1.7.9 version: 1.8.2 @@ -93,13 +96,19 @@ importers: express: specifier: ^5.1.0 version: 5.1.0 + express-jwt: + specifier: ^8.5.1 + version: 8.5.1 + jwt-decode: + specifier: ^4.0.0 + version: 4.0.0 zod: specifier: ^4.0.17 version: 4.0.17 devDependencies: '@types/express': - specifier: ^5.0.3 - version: 5.0.3 + specifier: ^5.0.5 + version: 5.0.5 '@types/node': specifier: ^24.10.0 version: 24.10.0 @@ -242,6 +251,10 @@ importers: version: 5.1.1 packages/api-client: + dependencies: + axios: + specifier: ^1.13.2 + version: 1.13.2 devDependencies: '@iracing-data/api-schema-to-openapi': specifier: workspace:* @@ -1794,8 +1807,8 @@ packages: '@types/send': 0.17.5 dev: true - /@types/express@5.0.3: - resolution: {integrity: sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==} + /@types/express@5.0.5: + resolution: {integrity: sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ==} dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 5.0.7 @@ -1817,6 +1830,13 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true + /@types/jsonwebtoken@9.0.10: + resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} + dependencies: + '@types/ms': 2.1.0 + '@types/node': 24.10.0 + dev: false + /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: @@ -1834,6 +1854,10 @@ packages: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true + /@types/ms@2.1.0: + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + dev: false + /@types/node@24.10.0: resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==} dependencies: @@ -2249,6 +2273,16 @@ packages: - debug dev: true + /axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} + dependencies: + follow-redirects: 1.15.11 + form-data: 4.0.4 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + /axios@1.8.2: resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==} dependencies: @@ -2358,6 +2392,10 @@ packages: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true + /buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + dev: false + /buffer-fill@1.0.0: resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} dev: true @@ -2855,6 +2893,12 @@ packages: wcwidth: 1.0.1 dev: true + /ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: false @@ -3256,6 +3300,19 @@ packages: engines: {node: '>= 0.6'} dev: false + /express-jwt@8.5.1: + resolution: {integrity: sha512-Dv6QjDLpR2jmdb8M6XQXiCcpEom7mK8TOqnr0/TngDKsG2DHVkO8+XnVxkJVN7BuS1I3OrGw6N8j5DaaGgkDRQ==} + engines: {node: '>= 8.0.0'} + dependencies: + '@types/jsonwebtoken': 9.0.10 + express-unless: 2.1.3 + jsonwebtoken: 9.0.2 + dev: false + + /express-unless@2.1.3: + resolution: {integrity: sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ==} + dev: false + /express@5.1.0: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} @@ -4283,6 +4340,42 @@ packages: graceful-fs: 4.2.11 dev: true + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.7.2 + dev: false + + /jwa@1.4.2: + resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + + /jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.2 + safe-buffer: 5.2.1 + dev: false + + /jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} + dev: false + /keyv@3.0.0: resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==} dependencies: @@ -4318,10 +4411,38 @@ packages: /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + /lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: false + + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: false + + /lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: false + + /lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: false + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: false + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: false + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -5208,7 +5329,6 @@ packages: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} hasBin: true - dev: true /send@1.2.0: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} From 75a596057b5fb199d4f929c8af552e9bc2ed917d Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:15:14 -0500 Subject: [PATCH 12/28] Refactor to use the generated client --- examples/oauth-example/package.json | 6 +- examples/oauth-example/src/index.ts | 56 +- examples/oauth-example/src/middleware.ts | 71 + examples/oauth-example/src/oauth-client.ts | 6 +- examples/oauth-example/src/router.ts | 17 - examples/oauth-example/src/routes/index.ts | 164 - packages/api-client/openapi/openapi.json | 2 +- packages/api-client/package.json | 8 +- packages/api-client/src/client/.gitignore | 4 + packages/api-client/src/client/.npmignore | 1 + .../src/client/.openapi-generator-ignore | 23 + .../src/client/.openapi-generator/FILES | 35 + .../src/client/.openapi-generator/VERSION | 1 + packages/api-client/src/client/README.md | 317 + packages/api-client/src/client/api.ts | 16586 ++++++++++++++++ packages/api-client/src/client/base.ts | 62 + packages/api-client/src/client/common.ts | 113 + .../api-client/src/client/configuration.ts | 121 + packages/api-client/src/client/docs/CarApi.md | 237 + .../api-client/src/client/docs/CarclassApi.md | 144 + .../src/client/docs/ConstantsApi.md | 331 + packages/api-client/src/client/docs/DocApi.md | 3749 ++++ .../src/client/docs/DriverStatsApi.md | 158 + .../src/client/docs/ErrorResponse.md | 24 + .../api-client/src/client/docs/HostedApi.md | 245 + .../src/client/docs/IracingAPIResponse.md | 23 + .../src/client/docs/IracingCategory.md | 19 + .../src/client/docs/IracingChartType.md | 13 + .../src/client/docs/IracingDivision.md | 29 + .../src/client/docs/IracingEventType.md | 15 + .../client/docs/IracingServiceMethodDocs.md | 25 + .../IracingServiceMethodParametersDocs.md | 25 + .../api-client/src/client/docs/LeagueApi.md | 1009 + .../api-client/src/client/docs/LookupApi.md | 522 + .../api-client/src/client/docs/MemberApi.md | 743 + .../api-client/src/client/docs/ResultsApi.md | 841 + .../api-client/src/client/docs/SeasonApi.md | 346 + .../api-client/src/client/docs/SeriesApi.md | 736 + .../api-client/src/client/docs/StatsApi.md | 1510 ++ .../api-client/src/client/docs/TeamApi.md | 246 + .../src/client/docs/TimeAttackApi.md | 151 + .../api-client/src/client/docs/TrackApi.md | 236 + packages/api-client/src/client/git_push.sh | 57 + packages/api-client/src/client/index.ts | 18 + packages/api-client/src/client/package.json | 31 + packages/api-client/src/client/tsconfig.json | 21 + packages/api-client/src/index.ts | 1 + packages/api-client/tsconfig.build.json | 14 + packages/api-client/tsconfig.json | 9 + packages/api-router/package.json | 6 +- packages/api-router/src/index.ts | 12 +- packages/api-router/src/middleware.ts | 90 +- packages/api-router/src/routes/auth/index.ts | 23 - .../api-router/src/routes/data/car-class.ts | 40 +- packages/api-router/src/routes/data/car.ts | 36 +- .../api-router/src/routes/data/constants.ts | 54 +- packages/api-router/src/routes/data/doc.ts | 12 + .../src/routes/data/driver-stats.ts | 30 +- packages/api-router/src/routes/data/hosted.ts | 42 +- packages/api-router/src/routes/data/index.ts | 1 + packages/api-router/src/routes/data/league.ts | 250 +- packages/api-router/src/routes/data/lookup.ts | 97 +- packages/api-router/src/routes/data/member.ts | 137 +- packages/api-router/src/routes/data/season.ts | 51 +- packages/api-router/src/routes/data/series.ts | 153 +- packages/api-router/src/routes/data/stats.ts | 350 +- packages/api-router/src/routes/data/team.ts | 43 +- .../api-router/src/routes/data/time-attack.ts | 24 +- packages/api-router/src/routes/data/track.ts | 36 +- packages/api-router/src/routes/index.ts | 1 - packages/api-schema/src/schema.ts | 58 +- .../api-schema-to-openapi/src/index.ts | 119 +- pnpm-lock.yaml | 10 +- 73 files changed, 29265 insertions(+), 1531 deletions(-) create mode 100644 examples/oauth-example/src/middleware.ts delete mode 100644 examples/oauth-example/src/router.ts delete mode 100644 examples/oauth-example/src/routes/index.ts create mode 100644 packages/api-client/src/client/.gitignore create mode 100644 packages/api-client/src/client/.npmignore create mode 100644 packages/api-client/src/client/.openapi-generator-ignore create mode 100644 packages/api-client/src/client/.openapi-generator/FILES create mode 100644 packages/api-client/src/client/.openapi-generator/VERSION create mode 100644 packages/api-client/src/client/README.md create mode 100644 packages/api-client/src/client/api.ts create mode 100644 packages/api-client/src/client/base.ts create mode 100644 packages/api-client/src/client/common.ts create mode 100644 packages/api-client/src/client/configuration.ts create mode 100644 packages/api-client/src/client/docs/CarApi.md create mode 100644 packages/api-client/src/client/docs/CarclassApi.md create mode 100644 packages/api-client/src/client/docs/ConstantsApi.md create mode 100644 packages/api-client/src/client/docs/DocApi.md create mode 100644 packages/api-client/src/client/docs/DriverStatsApi.md create mode 100644 packages/api-client/src/client/docs/ErrorResponse.md create mode 100644 packages/api-client/src/client/docs/HostedApi.md create mode 100644 packages/api-client/src/client/docs/IracingAPIResponse.md create mode 100644 packages/api-client/src/client/docs/IracingCategory.md create mode 100644 packages/api-client/src/client/docs/IracingChartType.md create mode 100644 packages/api-client/src/client/docs/IracingDivision.md create mode 100644 packages/api-client/src/client/docs/IracingEventType.md create mode 100644 packages/api-client/src/client/docs/IracingServiceMethodDocs.md create mode 100644 packages/api-client/src/client/docs/IracingServiceMethodParametersDocs.md create mode 100644 packages/api-client/src/client/docs/LeagueApi.md create mode 100644 packages/api-client/src/client/docs/LookupApi.md create mode 100644 packages/api-client/src/client/docs/MemberApi.md create mode 100644 packages/api-client/src/client/docs/ResultsApi.md create mode 100644 packages/api-client/src/client/docs/SeasonApi.md create mode 100644 packages/api-client/src/client/docs/SeriesApi.md create mode 100644 packages/api-client/src/client/docs/StatsApi.md create mode 100644 packages/api-client/src/client/docs/TeamApi.md create mode 100644 packages/api-client/src/client/docs/TimeAttackApi.md create mode 100644 packages/api-client/src/client/docs/TrackApi.md create mode 100644 packages/api-client/src/client/git_push.sh create mode 100644 packages/api-client/src/client/index.ts create mode 100644 packages/api-client/src/client/package.json create mode 100644 packages/api-client/src/client/tsconfig.json create mode 100644 packages/api-client/src/index.ts create mode 100644 packages/api-client/tsconfig.build.json create mode 100644 packages/api-client/tsconfig.json delete mode 100644 packages/api-router/src/routes/auth/index.ts create mode 100644 packages/api-router/src/routes/data/doc.ts diff --git a/examples/oauth-example/package.json b/examples/oauth-example/package.json index 1db75a6..8de60c8 100644 --- a/examples/oauth-example/package.json +++ b/examples/oauth-example/package.json @@ -9,16 +9,20 @@ }, "dependencies": { "@iracing-data/api": "workspace:*", + "@iracing-data/api-client": "workspace:*", "@iracing-data/api-router": "workspace:*", + "@iracing-data/api-schema": "workspace:*", "@iracing-data/oauth-client": "workspace:*", "axios": "^1.7.9", "better-call": "^1.0.24", "cookie-parser": "^1.4.7", "express": "^5.1.0", + "express-jwt": "^8.5.1", + "jwt-decode": "^4.0.0", "zod": "^4.0.17" }, "devDependencies": { - "@types/express": "^5.0.3", + "@types/express": "^5.0.5", "@types/node": "^24.10.0", "tsx": "^4.19.0" } diff --git a/examples/oauth-example/src/index.ts b/examples/oauth-example/src/index.ts index de55755..075a0cf 100644 --- a/examples/oauth-example/src/index.ts +++ b/examples/oauth-example/src/index.ts @@ -1,44 +1,56 @@ -import { createNodeHandler } from "@iracing-data/api-router"; import express from "express"; import cookieParser from "cookie-parser"; -import { page } from "./page"; +import { createRouter } from "@iracing-data/api-router"; import { PORT } from "./config"; +import oauthClient from "./oauth-client"; +import { page } from "./page"; +import { + getIRacingSession, + IRacingSessionRequest, + setIRacingSessionHeader, +} from "./middleware"; +import { toNodeHandler } from "better-call/node"; -const iracingRouter = createNodeHandler({ +const iracingRouter = createRouter({ basePath: "/iracing", - openapi: { - path: "/reference", - }, - onRequest: (request) => { - console.debug("Making request:", request); - }, - onResponse: (response) => { - console.debug("Response", response); - }, - onError: (error) => { - console.debug("Error!", error); - }, }); const app = express(); - +app.use(express.json()); app.use(express.urlencoded({ extended: true }), cookieParser()); -app.get("/", (req, res) => { - const hasToken = req.cookies?.["iracing-token"]; - +app.get("/", getIRacingSession, (req: IRacingSessionRequest, res) => { res .type("html") .send( page( - hasToken + req.accessToken ? `

Authenticated with iRacing

Sign out` - : `

Login

Login with iRacing` + : `

Login

Login with iRacing` ) ); }); -app.use("/iracing", iracingRouter); +app.get("/iracing/login", async (req, res) => { + const { url } = await oauthClient.authorize(); + return res.redirect(url.toString()); +}); + +app.get("/oauth/iracing/callback", async (req, res) => { + const params = new URLSearchParams(req.url.split("?")[1]); + const session = await oauthClient.callback(params); + res.cookie("iracing-session", JSON.stringify(session), { + httpOnly: true, + }); + + return res.redirect("/"); +}); + +app.use( + "/iracing", + setIRacingSessionHeader, + toNodeHandler(iracingRouter.handler) +); app.listen(PORT, () => { console.info(`Example app listening on port ${PORT}`); diff --git a/examples/oauth-example/src/middleware.ts b/examples/oauth-example/src/middleware.ts new file mode 100644 index 0000000..55eb872 --- /dev/null +++ b/examples/oauth-example/src/middleware.ts @@ -0,0 +1,71 @@ +import { Configuration } from "@iracing-data/api-client"; +import { Request, Response, NextFunction } from "express"; +import { jwtDecode } from "jwt-decode"; +import oauthClient from "./oauth-client"; + +export interface IRacingSessionRequest extends Request { + accessToken?: string; +} + +export async function getIRacingSession( + req: IRacingSessionRequest, + res: Response, + next: NextFunction +) { + req.accessToken = req.get("X-IRACING-ACCESS-TOKEN"); + + if (!req.accessToken && req.cookies?.["iracing-session"]) { + const parsedSession = JSON.parse(req.cookies["iracing-session"]); + const decoded = (jwtDecode(parsedSession.access_token) as any) || {}; + const exp = + typeof decoded.exp === "number" + ? decoded.exp + : parseInt(decoded.exp || "0", 10); + + // access token still valid + if (exp && Date.now() / 1000 < exp) { + req.accessToken = parsedSession.access_token; + return next(); + } + + // try to refresh if we have a refresh token + if (parsedSession.refresh_token) { + try { + const newSession = await oauthClient.refresh( + parsedSession.refresh_token + ); + res.cookie("iracing-session", JSON.stringify(newSession), { + httpOnly: true, + secure: true, + }); + + req.accessToken = newSession.access_token; + return next(); + } catch { + res.clearCookie("iracing-session"); + return next(); + } + } + + // no valid access or refresh token + res.clearCookie("iracing-session"); + return next(); + } + + next(); +} + +export function setIRacingSessionHeader(req, res, next) { + if (!req.get("X-IRACING-ACCESS-TOKEN") && req.cookies?.["iracing-session"]) { + try { + const session = JSON.parse(req.cookies["iracing-session"]); + if (session?.access_token) { + req.headers["x-iracing-access-token"] = session.access_token; + } + } catch { + // ignore cookie parse errors + } + } + + next(); +} diff --git a/examples/oauth-example/src/oauth-client.ts b/examples/oauth-example/src/oauth-client.ts index 333f87c..77277ad 100644 --- a/examples/oauth-example/src/oauth-client.ts +++ b/examples/oauth-example/src/oauth-client.ts @@ -1,8 +1,8 @@ import { OAuthClient } from "@iracing-data/oauth-client"; -import { InMemoryStore } from "./storage/memory"; import { IRACING_CLIENT_ID, PORT } from "./config"; +import { InMemoryStore } from "./storage/memory"; -export const client = new OAuthClient({ +export const oauthClient = new OAuthClient({ clientMetadata: { clientId: IRACING_CLIENT_ID, redirectUri: `http://127.0.0.1:${PORT}/oauth/iracing/callback`, @@ -11,4 +11,4 @@ export const client = new OAuthClient({ stateStore: new InMemoryStore(), }); -export default client; +export default oauthClient; diff --git a/examples/oauth-example/src/router.ts b/examples/oauth-example/src/router.ts deleted file mode 100644 index 76f5836..0000000 --- a/examples/oauth-example/src/router.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { createRouter } from "better-call"; -import * as routes from "./routes"; - -export const router = createRouter( - { ...routes }, - { - openapi: { - scalar: { - title: "iRacing OAuth Client Example API", - version: "0.0.1", - description: "An iRacing OAuth Client implementation example.", - }, - }, - } -); - -export default router; diff --git a/examples/oauth-example/src/routes/index.ts b/examples/oauth-example/src/routes/index.ts deleted file mode 100644 index b67a25a..0000000 --- a/examples/oauth-example/src/routes/index.ts +++ /dev/null @@ -1,164 +0,0 @@ -import client from "@/oauth-client"; -import { BASE_URL } from "@iracing-data/oauth-client"; -import { createEndpoint } from "better-call"; -import path from "path"; -import { z } from "zod"; - -// TODO: Add routes for session management - -export const oauthSignIn = createEndpoint( - "/oauth/iracing/login", - { - method: "GET", - }, - async (context) => { - const { url } = await client.authorize(); - return context.redirect(url.toString()); - } -); - -export const oauthCallback = createEndpoint( - "/oauth/iracing/callback", - { - method: "GET", - query: z.object({ - code: z.string(), - state: z.string(), - }), - }, - async (context) => { - const token = await client.callback(new URLSearchParams(context.query)); - - /** - * TODO: Write some sort of handler at the top-level that consumers can provide to process the token - * before redirecting. - */ - context.setCookie("iracing-token", token.access_token, { - httpOnly: true, - path: "/", - maxAge: token.expires_in, - }); - - context.setHeader("X-IRACING-ACCESS-TOKEN", token.access_token); - context.setHeader( - "X-IRACING-ACCESS-TOKEN-EXPIRES-IN", - token.expires_in.toString() - ); - - if (token.scope) { - context.setHeader("X-IRACING-SCOPE", token.scope); - } - - if (token.refresh_token) { - context.setHeader("X-IRACING-REFRESH-TOKEN", token.refresh_token); - } - - if (token.refresh_token_expires_in) { - context.setHeader( - "X-IRACING-REFRESH-TOKEN-EXPIRES-IN", - token.refresh_token_expires_in.toString() - ); - } - - return context.redirect("/"); - } -); - -export const oauthSignOut = createEndpoint( - "/oauth/iracing/logout", - { - method: "GET", - }, - async (context) => { - context.setCookie("iracing-token", "", { - httpOnly: true, - path: "/", - maxAge: 0, - }); - - return context.redirect("/"); - } -); - -export const oauthSessions = createEndpoint( - "/oauth/sessions", - { - method: "GET", - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "sessions"), { - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - }, - }); - } -); - -export const revokeCurrentOauthSession = createEndpoint( - "/oauth/revoke/current", - { - method: "POST", - body: z.object({ - forgetBrowser: z.boolean().optional(), - }), - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "revoke", "current"), { - body: JSON.stringify(context.body), - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - "Content-Type": "application/x-www-form-urlencoded", - }, - }); - } -); - -export const revokeOauthSessions = createEndpoint( - "/oauth/revoke/current", - { - method: "POST", - body: z.object({ - sessionIds: z.array(z.string()), - }), - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "revoke", "current"), { - body: JSON.stringify({ session_ids: context.body.sessionIds.join(",") }), - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - "Content-Type": "application/x-www-form-urlencoded", - }, - }); - } -); - -export const revokeClientOauthSessions = createEndpoint( - "/oauth/revoke/client", - { - method: "POST", - }, - async (context) => { - const accessToken = - context.getHeader("X-IRACING-ACCESS-TOKEN") || - context.getCookie("iracing-token"); - - return fetch(path.join(BASE_URL, "revoke", "client"), { - headers: { - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, - "Content-Type": "application/x-www-form-urlencoded", - }, - }); - } -); diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json index cc71a81..1b1a030 100644 --- a/packages/api-client/openapi/openapi.json +++ b/packages/api-client/openapi/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/data/doc":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"tags":["doc","carclass"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/oval":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/sports_car":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/formula_car":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/road":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/dirt_oval":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/dirt_road":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"tags":["doc"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"tags":["doc","team"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"tags":["doc","team"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"tags":["doc","time_attack"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"tags":["doc","time_attack"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"tags":["doc","track"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"tags":["doc","track"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"tags":["doc","track"],"responses":{"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"tags":["car"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"tags":["driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"tags":["lookup"],"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","$ref":"#/components/schemas/iracingChartType"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"tags":["member"],"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"?cust_ids=2,3,4","type":"array","items":{"type":"number"}},"required":true,"description":"?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getProfile","summary":"Gets a requested user's profile.","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"type":"number"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"tags":["results"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"tags":["season"],"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"tags":["season"],"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"tags":["series"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"tags":["stats"],"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"tags":["team"],"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"tags":["team"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"tags":["time_attack"],"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"tags":["track"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"tags":["track"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingChartType":{"description":"iRacing Chart Type","anyOf":[{"description":"iRating","type":"number","const":1},{"description":"Time trial rating","type":"number","const":2},{"description":"License rating","type":"number","const":3}]},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file +{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"externalDocs":{"url":"/data/doc","description":"Find more information on available services here. Requires authentication."},"security":[{"bearerAuth":[]}],"tags":[{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/data/doc":{"get":{"operationId":"getDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/Docs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"operationId":"getCarClassDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"operationId":"getCarClassGetDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"operationId":"getCarDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"operationId":"getCarAssetsDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"operationId":"getCarGetDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"operationId":"getConstantsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"operationId":"getConstantsCategoriesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"operationId":"getConstantsDivisionsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"operationId":"getConstantsEventTypesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"operationId":"getDriverStatsByCategoryDocs","tags":["doc","driver_stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategoryCategoryDocs","tags":["doc","driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"operationId":"getHostedDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"operationId":"getHostedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"operationId":"getLeagueDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"operationId":"getLeagueDirectoryDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"operationId":"getLeagueGetDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"operationId":"getLeagueGetPointsSystemsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"operationId":"getLeagueMembershipDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"operationId":"getLeagueRosterDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"operationId":"getLeagueSeasonsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandingsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"operationId":"getLookupDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"operationId":"getLookupCountriesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"operationId":"getLookupDriversDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"operationId":"getLookupFlairsDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"operationId":"getLookupGetDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"operationId":"getLookupLicensesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"operationId":"getMemberDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"operationId":"getMemberAwardsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"operationId":"getMemberAwardInstancesDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"operationId":"getMemberChartDataDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"operationId":"getMemberGetDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"operationId":"getMemberInfoDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"operationId":"getMemberParticipationCreditsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"operationId":"getMemberProfileDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"operationId":"getResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"operationId":"getResultsGetDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"operationId":"getResultsEventLogDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"operationId":"getResultsLapDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"operationId":"getResultsSearchHostedDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"operationId":"getResultsSearchSeriesDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"operationId":"getResultsSeasonResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"operationId":"getSeasonDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"operationId":"getSeasonListDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"operationId":"getSeasonRaceGuideDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"operationId":"getTeamDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"operationId":"getTeamGetDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"operationId":"getTeamMembershipDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"externalDocs":{"url":"/data/doc/carclass/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"operationId":"getCarAssets","description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"externalDocs":{"url":"/data/doc/car/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"operationId":"getCar","tags":["car"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"operationId":"getConstantsCategories","description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"operationId":"getConstantsDivisions","description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"operationId":"getConstantsEventTypes","description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategory","tags":["driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessions","description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"operationId":"getHostedSessions","description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessions","tags":["league"],"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"operationId":"getLeagueDirectory","tags":["league"],"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"operationId":"getLeague","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"operationId":"getLeaguePointsSystems","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"operationId":"getLeagueMembership","tags":["league"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"operationId":"getLeagueRoster","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"operationId":"getLeagueSeasons","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandings","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessions","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"operationId":"getLookupCountries","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"operationId":"getLookupFlairs","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"operationId":"getLookupLicenses","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"operationId":"getLookupDrivers","tags":["lookup"],"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"operationId":"getLookup","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"operationId":"getMemberAwards","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"operationId":"getMemberAwardInstances","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"operationId":"getMemberChartData","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","$ref":"#/components/schemas/iracingChartType"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"operationId":"getMember","tags":["member"],"externalDocs":{"url":"/data/doc/member/get"},"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"?cust_ids=2,3,4","type":"array","items":{"type":"number"}},"required":true,"description":"?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"operationId":"getMemberInfo","tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"operationId":"getMemberParticipationCredits","tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getMemberProfile","summary":"Gets a requested user's profile.","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"operationId":"getResults","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"operationId":"getResultsEventLog","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartData","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"operationId":"getResultsLapData","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"operationId":"getResultsSearchHosted","tags":["results"],"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"operationId":"getResultsSearchSeries","tags":["results"],"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"type":"number"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"operationId":"getResultsSeasonResults","tags":["results"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"operationId":"getSeasonList","tags":["season"],"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"operationId":"getSeasonRaceGuide","tags":["season"],"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"operationId":"getSeriesAssets","tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"operationId":"getSeries","tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasons","tags":["series"],"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"operationId":"getSeriesSeasons","tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"operationId":"getSeriesSeasonList","tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"operationId":"getSeriesSeasonSchedule","tags":["series"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"operationId":"getSeriesStatsSeries","tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"operationId":"getStatsMemberBests","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"operationId":"getStatsMemberCareer","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"operationId":"getStatsMemberDivision","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"operationId":"getStatsMemberRecap","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRaces","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"operationId":"getStatsMemberSummary","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearly","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"operationId":"getStatsSeasonTimeTrialStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"operationId":"getStatsSeasonTimeTrialResults","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResults","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"operationId":"getStatsWorldRecords","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/world_records"},"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"operationId":"getTeam","tags":["team"],"externalDocs":{"url":"/data/doc/team/get"},"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"operationId":"getTeamMembership","tags":["team"],"externalDocs":{"url":"/data/doc/team/membership"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResults","tags":["time_attack"],"externalDocs":{"url":"/data/doc/time_attack/member_season_results"},"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"operationId":"getTrackAssets","tags":["track"],"externalDocs":{"url":"/data/doc/track/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"operationId":"getTrack","tags":["track"],"externalDocs":{"url":"/data/doc/track/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingChartType":{"description":"iRacing Chart Type","anyOf":[{"description":"iRating","type":"number","const":1},{"description":"Time trial rating","type":"number","const":2},{"description":"License rating","type":"number","const":3}]},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false},"iracingServicesDocs":{"description":"An index of available services on the iRacing API.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceDocs"}},"iracingServiceDocs":{"description":"An index of service methods available for the requested service.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}},"iracingServiceMethodDocs":{"description":"An iRacing API Service Method object.","type":"object","properties":{"link":{"type":"string","format":"uri"},"parameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodParametersDocs"}},"expirationSeconds":{"type":"number"}},"required":["link","parameters"],"additionalProperties":false},"iracingServiceMethodParametersDocs":{"description":"An iRacing API Service Method Parameters object.","type":"object","properties":{"type":{"type":"string"},"note":{"type":"string"},"required":{"type":"boolean"}},"required":["type"],"additionalProperties":false},"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"Docs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServicesDocs"}}}},"ServiceDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceDocs"}}}},"ServiceMethodDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file diff --git a/packages/api-client/package.json b/packages/api-client/package.json index 7047e04..def51a4 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -3,7 +3,13 @@ "version": "0.0.0-alpha.0", "main": "dist/index.js", "scripts": { - "codegen:openapi": "iracing-api-openapi -o ./openapi" + "codegen": "pnpm codegen:openapi && pnpm codegen:client", + "codegen:openapi": "iracing-api-openapi -o ./openapi", + "codegen:client": "openapi-generator-cli generate -g typescript-axios -i openapi/openapi.json -o src/client --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client'", + "build": "pnpm codegen && tsc --build tsconfig.build.json" + }, + "dependencies": { + "axios": "^1.13.2" }, "devDependencies": { "@iracing-data/api-schema-to-openapi": "workspace:*", diff --git a/packages/api-client/src/client/.gitignore b/packages/api-client/src/client/.gitignore new file mode 100644 index 0000000..149b576 --- /dev/null +++ b/packages/api-client/src/client/.gitignore @@ -0,0 +1,4 @@ +wwwroot/*.js +node_modules +typings +dist diff --git a/packages/api-client/src/client/.npmignore b/packages/api-client/src/client/.npmignore new file mode 100644 index 0000000..999d88d --- /dev/null +++ b/packages/api-client/src/client/.npmignore @@ -0,0 +1 @@ +# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm \ No newline at end of file diff --git a/packages/api-client/src/client/.openapi-generator-ignore b/packages/api-client/src/client/.openapi-generator-ignore new file mode 100644 index 0000000..7484ee5 --- /dev/null +++ b/packages/api-client/src/client/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/packages/api-client/src/client/.openapi-generator/FILES b/packages/api-client/src/client/.openapi-generator/FILES new file mode 100644 index 0000000..18e6ddc --- /dev/null +++ b/packages/api-client/src/client/.openapi-generator/FILES @@ -0,0 +1,35 @@ +.gitignore +.npmignore +README.md +api.ts +base.ts +common.ts +configuration.ts +docs/CarApi.md +docs/CarclassApi.md +docs/ConstantsApi.md +docs/DocApi.md +docs/DriverStatsApi.md +docs/ErrorResponse.md +docs/HostedApi.md +docs/IracingAPIResponse.md +docs/IracingCategory.md +docs/IracingChartType.md +docs/IracingDivision.md +docs/IracingEventType.md +docs/IracingServiceMethodDocs.md +docs/IracingServiceMethodParametersDocs.md +docs/LeagueApi.md +docs/LookupApi.md +docs/MemberApi.md +docs/ResultsApi.md +docs/SeasonApi.md +docs/SeriesApi.md +docs/StatsApi.md +docs/TeamApi.md +docs/TimeAttackApi.md +docs/TrackApi.md +git_push.sh +index.ts +package.json +tsconfig.json diff --git a/packages/api-client/src/client/.openapi-generator/VERSION b/packages/api-client/src/client/.openapi-generator/VERSION new file mode 100644 index 0000000..6328c54 --- /dev/null +++ b/packages/api-client/src/client/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.17.0 diff --git a/packages/api-client/src/client/README.md b/packages/api-client/src/client/README.md new file mode 100644 index 0000000..c165058 --- /dev/null +++ b/packages/api-client/src/client/README.md @@ -0,0 +1,317 @@ +## @iracing-data/api-client@0.0.1 + +This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments: + +Environment +* Node.js +* Webpack +* Browserify + +Language level +* ES5 - you must have a Promises/A+ library installed +* ES6 + +Module system +* CommonJS +* ES6 module system + +It can be used in both TypeScript and JavaScript. In TypeScript, the definition will be automatically resolved via `package.json`. ([Reference](https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html)) + +### Building + +To build and compile the typescript sources to javascript use: +``` +npm install +npm run build +``` + +### Publishing + +First build the package then run `npm publish` + +### Consuming + +navigate to the folder of your consuming project and run one of the following commands. + +_published:_ + +``` +npm install @iracing-data/api-client@0.0.1 --save +``` + +_unPublished (not recommended):_ + +``` +npm install PATH_TO_GENERATED_PACKAGE --save +``` + +### Documentation for API Endpoints + +All URIs are relative to *https://members-ng.iracing.com* + +Class | Method | HTTP request | Description +------------ | ------------- | ------------- | ------------- +*CarApi* | [**getCar**](docs/CarApi.md#getcar) | **GET** /data/car/get | +*CarApi* | [**getCarAssets**](docs/CarApi.md#getcarassets) | **GET** /data/car/assets | +*CarApi* | [**getCarAssetsDocs**](docs/CarApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | +*CarApi* | [**getCarDocs**](docs/CarApi.md#getcardocs) | **GET** /data/doc/car | +*CarApi* | [**getCarGetDocs**](docs/CarApi.md#getcargetdocs) | **GET** /data/doc/car/get | +*CarclassApi* | [**getCarClass**](docs/CarclassApi.md#getcarclass) | **GET** /data/carclass/get | Gets car classes. +*CarclassApi* | [**getCarClassDocs**](docs/CarclassApi.md#getcarclassdocs) | **GET** /data/doc/carclass | +*CarclassApi* | [**getCarClassGetDocs**](docs/CarclassApi.md#getcarclassgetdocs) | **GET** /data/doc/carclass/get | +*ConstantsApi* | [**getConstantsCategories**](docs/ConstantsApi.md#getconstantscategories) | **GET** /data/constants/categories | +*ConstantsApi* | [**getConstantsCategoriesDocs**](docs/ConstantsApi.md#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | +*ConstantsApi* | [**getConstantsDivisions**](docs/ConstantsApi.md#getconstantsdivisions) | **GET** /data/constants/divisions | +*ConstantsApi* | [**getConstantsDivisionsDocs**](docs/ConstantsApi.md#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | +*ConstantsApi* | [**getConstantsDocs**](docs/ConstantsApi.md#getconstantsdocs) | **GET** /data/doc/constants | +*ConstantsApi* | [**getConstantsEventTypes**](docs/ConstantsApi.md#getconstantseventtypes) | **GET** /data/constants/event_types | +*ConstantsApi* | [**getConstantsEventTypesDocs**](docs/ConstantsApi.md#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | +*DocApi* | [**dataDocSeasonSpectatorSubsessionidsDetailGet**](docs/DocApi.md#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | +*DocApi* | [**dataDocSeasonSpectatorSubsessionidsGet**](docs/DocApi.md#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | +*DocApi* | [**dataDocSeriesAssetsGet**](docs/DocApi.md#datadocseriesassetsget) | **GET** /data/doc/series/assets | +*DocApi* | [**dataDocSeriesGet**](docs/DocApi.md#datadocseriesget) | **GET** /data/doc/series | +*DocApi* | [**dataDocSeriesGetGet**](docs/DocApi.md#datadocseriesgetget) | **GET** /data/doc/series/get | +*DocApi* | [**dataDocSeriesPastSeasonsGet**](docs/DocApi.md#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | +*DocApi* | [**dataDocSeriesSeasonListGet**](docs/DocApi.md#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | +*DocApi* | [**dataDocSeriesSeasonScheduleGet**](docs/DocApi.md#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | +*DocApi* | [**dataDocSeriesSeasonsGet**](docs/DocApi.md#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | +*DocApi* | [**dataDocSeriesStatsSeriesGet**](docs/DocApi.md#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | +*DocApi* | [**dataDocStatsGet**](docs/DocApi.md#datadocstatsget) | **GET** /data/doc/stats | +*DocApi* | [**dataDocStatsMemberBestsGet**](docs/DocApi.md#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | +*DocApi* | [**dataDocStatsMemberCareerGet**](docs/DocApi.md#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | +*DocApi* | [**dataDocStatsMemberDivisionGet**](docs/DocApi.md#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | +*DocApi* | [**dataDocStatsMemberRecapGet**](docs/DocApi.md#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | +*DocApi* | [**dataDocStatsMemberRecentRacesGet**](docs/DocApi.md#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | +*DocApi* | [**dataDocStatsMemberSummaryGet**](docs/DocApi.md#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | +*DocApi* | [**dataDocStatsMemberYearlyGet**](docs/DocApi.md#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | +*DocApi* | [**dataDocStatsSeasonDriverStandingsGet**](docs/DocApi.md#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | +*DocApi* | [**dataDocStatsSeasonQualifyResultsGet**](docs/DocApi.md#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | +*DocApi* | [**dataDocStatsSeasonSupersessionStandingsGet**](docs/DocApi.md#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | +*DocApi* | [**dataDocStatsSeasonTeamStandingsGet**](docs/DocApi.md#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | +*DocApi* | [**dataDocStatsSeasonTtResultsGet**](docs/DocApi.md#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | +*DocApi* | [**dataDocStatsSeasonTtStandingsGet**](docs/DocApi.md#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | +*DocApi* | [**dataDocStatsWorldRecordsGet**](docs/DocApi.md#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | +*DocApi* | [**dataDocTimeAttackGet**](docs/DocApi.md#datadoctimeattackget) | **GET** /data/doc/time_attack | +*DocApi* | [**dataDocTimeAttackMemberSeasonResultsGet**](docs/DocApi.md#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | +*DocApi* | [**dataDocTrackAssetsGet**](docs/DocApi.md#datadoctrackassetsget) | **GET** /data/doc/track/assets | +*DocApi* | [**dataDocTrackGet**](docs/DocApi.md#datadoctrackget) | **GET** /data/doc/track | +*DocApi* | [**dataDocTrackGetGet**](docs/DocApi.md#datadoctrackgetget) | **GET** /data/doc/track/get | +*DocApi* | [**getCarAssetsDocs**](docs/DocApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | +*DocApi* | [**getCarClassDocs**](docs/DocApi.md#getcarclassdocs) | **GET** /data/doc/carclass | +*DocApi* | [**getCarClassGetDocs**](docs/DocApi.md#getcarclassgetdocs) | **GET** /data/doc/carclass/get | +*DocApi* | [**getCarDocs**](docs/DocApi.md#getcardocs) | **GET** /data/doc/car | +*DocApi* | [**getCarGetDocs**](docs/DocApi.md#getcargetdocs) | **GET** /data/doc/car/get | +*DocApi* | [**getConstantsCategoriesDocs**](docs/DocApi.md#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | +*DocApi* | [**getConstantsDivisionsDocs**](docs/DocApi.md#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | +*DocApi* | [**getConstantsDocs**](docs/DocApi.md#getconstantsdocs) | **GET** /data/doc/constants | +*DocApi* | [**getConstantsEventTypesDocs**](docs/DocApi.md#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | +*DocApi* | [**getDocs**](docs/DocApi.md#getdocs) | **GET** /data/doc | +*DocApi* | [**getDriverStatsByCategoryCategoryDocs**](docs/DocApi.md#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | +*DocApi* | [**getDriverStatsByCategoryDocs**](docs/DocApi.md#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | +*DocApi* | [**getHostedCombinedSessionsDocs**](docs/DocApi.md#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | +*DocApi* | [**getHostedDocs**](docs/DocApi.md#gethosteddocs) | **GET** /data/doc/hosted | +*DocApi* | [**getHostedSessionsDocs**](docs/DocApi.md#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | +*DocApi* | [**getLeagueCustomerLeagueSessionsDocs**](docs/DocApi.md#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | +*DocApi* | [**getLeagueDirectoryDocs**](docs/DocApi.md#getleaguedirectorydocs) | **GET** /data/doc/league/directory | +*DocApi* | [**getLeagueDocs**](docs/DocApi.md#getleaguedocs) | **GET** /data/doc/league | +*DocApi* | [**getLeagueGetDocs**](docs/DocApi.md#getleaguegetdocs) | **GET** /data/doc/league/get | +*DocApi* | [**getLeagueGetPointsSystemsDocs**](docs/DocApi.md#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | +*DocApi* | [**getLeagueMembershipDocs**](docs/DocApi.md#getleaguemembershipdocs) | **GET** /data/doc/league/membership | +*DocApi* | [**getLeagueRosterDocs**](docs/DocApi.md#getleaguerosterdocs) | **GET** /data/doc/league/roster | +*DocApi* | [**getLeagueSeasonSessionsDocs**](docs/DocApi.md#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | +*DocApi* | [**getLeagueSeasonStandingsDocs**](docs/DocApi.md#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | +*DocApi* | [**getLeagueSeasonsDocs**](docs/DocApi.md#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | +*DocApi* | [**getLookupCountriesDocs**](docs/DocApi.md#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | +*DocApi* | [**getLookupDocs**](docs/DocApi.md#getlookupdocs) | **GET** /data/doc/lookup | +*DocApi* | [**getLookupDriversDocs**](docs/DocApi.md#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | +*DocApi* | [**getLookupFlairsDocs**](docs/DocApi.md#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | +*DocApi* | [**getLookupGetDocs**](docs/DocApi.md#getlookupgetdocs) | **GET** /data/doc/lookup/get | +*DocApi* | [**getLookupLicensesDocs**](docs/DocApi.md#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | +*DocApi* | [**getMemberAwardInstancesDocs**](docs/DocApi.md#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | +*DocApi* | [**getMemberAwardsDocs**](docs/DocApi.md#getmemberawardsdocs) | **GET** /data/doc/member/awards | +*DocApi* | [**getMemberChartDataDocs**](docs/DocApi.md#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | +*DocApi* | [**getMemberDocs**](docs/DocApi.md#getmemberdocs) | **GET** /data/doc/member | +*DocApi* | [**getMemberGetDocs**](docs/DocApi.md#getmembergetdocs) | **GET** /data/doc/member/get | +*DocApi* | [**getMemberInfoDocs**](docs/DocApi.md#getmemberinfodocs) | **GET** /data/doc/member/info | +*DocApi* | [**getMemberParticipationCreditsDocs**](docs/DocApi.md#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | +*DocApi* | [**getMemberProfileDocs**](docs/DocApi.md#getmemberprofiledocs) | **GET** /data/doc/member/profile | +*DocApi* | [**getResultsDocs**](docs/DocApi.md#getresultsdocs) | **GET** /data/doc/results | +*DocApi* | [**getResultsEventLogDocs**](docs/DocApi.md#getresultseventlogdocs) | **GET** /data/doc/results/event_log | +*DocApi* | [**getResultsGetDocs**](docs/DocApi.md#getresultsgetdocs) | **GET** /data/doc/results/get | +*DocApi* | [**getResultsLapChartDataDocs**](docs/DocApi.md#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | +*DocApi* | [**getResultsLapDataDocs**](docs/DocApi.md#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | +*DocApi* | [**getResultsSearchHostedDocs**](docs/DocApi.md#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | +*DocApi* | [**getResultsSearchSeriesDocs**](docs/DocApi.md#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | +*DocApi* | [**getResultsSeasonResultsDocs**](docs/DocApi.md#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | +*DocApi* | [**getSeasonDocs**](docs/DocApi.md#getseasondocs) | **GET** /data/doc/season | +*DocApi* | [**getSeasonListDocs**](docs/DocApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | +*DocApi* | [**getSeasonRaceGuideDocs**](docs/DocApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | +*DocApi* | [**getTeamDocs**](docs/DocApi.md#getteamdocs) | **GET** /data/doc/team | +*DocApi* | [**getTeamGetDocs**](docs/DocApi.md#getteamgetdocs) | **GET** /data/doc/team/get | +*DocApi* | [**getTeamMembershipDocs**](docs/DocApi.md#getteammembershipdocs) | **GET** /data/doc/team/membership | +*DriverStatsApi* | [**getDriverStatsByCategory**](docs/DriverStatsApi.md#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | +*DriverStatsApi* | [**getDriverStatsByCategoryCategoryDocs**](docs/DriverStatsApi.md#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | +*DriverStatsApi* | [**getDriverStatsByCategoryDocs**](docs/DriverStatsApi.md#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | +*HostedApi* | [**getHostedCombinedSessions**](docs/HostedApi.md#gethostedcombinedsessions) | **GET** /data/hosted/combined_sessions | +*HostedApi* | [**getHostedCombinedSessionsDocs**](docs/HostedApi.md#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | +*HostedApi* | [**getHostedDocs**](docs/HostedApi.md#gethosteddocs) | **GET** /data/doc/hosted | +*HostedApi* | [**getHostedSessions**](docs/HostedApi.md#gethostedsessions) | **GET** /data/hosted/sessions | +*HostedApi* | [**getHostedSessionsDocs**](docs/HostedApi.md#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | +*LeagueApi* | [**getLeague**](docs/LeagueApi.md#getleague) | **GET** /data/league/get | +*LeagueApi* | [**getLeagueCustomerLeagueSessions**](docs/LeagueApi.md#getleaguecustomerleaguesessions) | **GET** /data/league/cust_league_sessions | +*LeagueApi* | [**getLeagueCustomerLeagueSessionsDocs**](docs/LeagueApi.md#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | +*LeagueApi* | [**getLeagueDirectory**](docs/LeagueApi.md#getleaguedirectory) | **GET** /data/league/directory | +*LeagueApi* | [**getLeagueDirectoryDocs**](docs/LeagueApi.md#getleaguedirectorydocs) | **GET** /data/doc/league/directory | +*LeagueApi* | [**getLeagueDocs**](docs/LeagueApi.md#getleaguedocs) | **GET** /data/doc/league | +*LeagueApi* | [**getLeagueGetDocs**](docs/LeagueApi.md#getleaguegetdocs) | **GET** /data/doc/league/get | +*LeagueApi* | [**getLeagueGetPointsSystemsDocs**](docs/LeagueApi.md#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | +*LeagueApi* | [**getLeagueMembership**](docs/LeagueApi.md#getleaguemembership) | **GET** /data/league/membership | +*LeagueApi* | [**getLeagueMembershipDocs**](docs/LeagueApi.md#getleaguemembershipdocs) | **GET** /data/doc/league/membership | +*LeagueApi* | [**getLeaguePointsSystems**](docs/LeagueApi.md#getleaguepointssystems) | **GET** /data/league/get_points_systems | +*LeagueApi* | [**getLeagueRoster**](docs/LeagueApi.md#getleagueroster) | **GET** /data/league/roster | +*LeagueApi* | [**getLeagueRosterDocs**](docs/LeagueApi.md#getleaguerosterdocs) | **GET** /data/doc/league/roster | +*LeagueApi* | [**getLeagueSeasonSessions**](docs/LeagueApi.md#getleagueseasonsessions) | **GET** /data/league/season_sessions | +*LeagueApi* | [**getLeagueSeasonSessionsDocs**](docs/LeagueApi.md#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | +*LeagueApi* | [**getLeagueSeasonStandings**](docs/LeagueApi.md#getleagueseasonstandings) | **GET** /data/league/season_standings | +*LeagueApi* | [**getLeagueSeasonStandingsDocs**](docs/LeagueApi.md#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | +*LeagueApi* | [**getLeagueSeasons**](docs/LeagueApi.md#getleagueseasons) | **GET** /data/league/seasons | +*LeagueApi* | [**getLeagueSeasonsDocs**](docs/LeagueApi.md#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | +*LookupApi* | [**getLookup**](docs/LookupApi.md#getlookup) | **GET** /data/lookup/get | +*LookupApi* | [**getLookupCountries**](docs/LookupApi.md#getlookupcountries) | **GET** /data/lookup/countries | +*LookupApi* | [**getLookupCountriesDocs**](docs/LookupApi.md#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | +*LookupApi* | [**getLookupDocs**](docs/LookupApi.md#getlookupdocs) | **GET** /data/doc/lookup | +*LookupApi* | [**getLookupDrivers**](docs/LookupApi.md#getlookupdrivers) | **GET** /data/lookup/drivers | +*LookupApi* | [**getLookupDriversDocs**](docs/LookupApi.md#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | +*LookupApi* | [**getLookupFlairs**](docs/LookupApi.md#getlookupflairs) | **GET** /data/lookup/flairs | +*LookupApi* | [**getLookupFlairsDocs**](docs/LookupApi.md#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | +*LookupApi* | [**getLookupGetDocs**](docs/LookupApi.md#getlookupgetdocs) | **GET** /data/doc/lookup/get | +*LookupApi* | [**getLookupLicenses**](docs/LookupApi.md#getlookuplicenses) | **GET** /data/lookup/licenses | +*LookupApi* | [**getLookupLicensesDocs**](docs/LookupApi.md#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | +*MemberApi* | [**getMember**](docs/MemberApi.md#getmember) | **GET** /data/member/get | +*MemberApi* | [**getMemberAwardInstances**](docs/MemberApi.md#getmemberawardinstances) | **GET** /data/member/award_instances | +*MemberApi* | [**getMemberAwardInstancesDocs**](docs/MemberApi.md#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | +*MemberApi* | [**getMemberAwards**](docs/MemberApi.md#getmemberawards) | **GET** /data/member/awards | +*MemberApi* | [**getMemberAwardsDocs**](docs/MemberApi.md#getmemberawardsdocs) | **GET** /data/doc/member/awards | +*MemberApi* | [**getMemberChartData**](docs/MemberApi.md#getmemberchartdata) | **GET** /data/member/chart_data | +*MemberApi* | [**getMemberChartDataDocs**](docs/MemberApi.md#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | +*MemberApi* | [**getMemberDocs**](docs/MemberApi.md#getmemberdocs) | **GET** /data/doc/member | +*MemberApi* | [**getMemberGetDocs**](docs/MemberApi.md#getmembergetdocs) | **GET** /data/doc/member/get | +*MemberApi* | [**getMemberInfo**](docs/MemberApi.md#getmemberinfo) | **GET** /data/member/info | +*MemberApi* | [**getMemberInfoDocs**](docs/MemberApi.md#getmemberinfodocs) | **GET** /data/doc/member/info | +*MemberApi* | [**getMemberParticipationCredits**](docs/MemberApi.md#getmemberparticipationcredits) | **GET** /data/member/participation_credits | +*MemberApi* | [**getMemberParticipationCreditsDocs**](docs/MemberApi.md#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | +*MemberApi* | [**getMemberProfile**](docs/MemberApi.md#getmemberprofile) | **GET** /data/member/profile | Gets a requested user\'s profile. +*MemberApi* | [**getMemberProfileDocs**](docs/MemberApi.md#getmemberprofiledocs) | **GET** /data/doc/member/profile | +*ResultsApi* | [**getResults**](docs/ResultsApi.md#getresults) | **GET** /data/results/get | +*ResultsApi* | [**getResultsDocs**](docs/ResultsApi.md#getresultsdocs) | **GET** /data/doc/results | +*ResultsApi* | [**getResultsEventLog**](docs/ResultsApi.md#getresultseventlog) | **GET** /data/results/event_log | +*ResultsApi* | [**getResultsEventLogDocs**](docs/ResultsApi.md#getresultseventlogdocs) | **GET** /data/doc/results/event_log | +*ResultsApi* | [**getResultsGetDocs**](docs/ResultsApi.md#getresultsgetdocs) | **GET** /data/doc/results/get | +*ResultsApi* | [**getResultsLapChartData**](docs/ResultsApi.md#getresultslapchartdata) | **GET** /data/results/lap_chart_data | +*ResultsApi* | [**getResultsLapChartDataDocs**](docs/ResultsApi.md#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | +*ResultsApi* | [**getResultsLapData**](docs/ResultsApi.md#getresultslapdata) | **GET** /data/results/lap_data | +*ResultsApi* | [**getResultsLapDataDocs**](docs/ResultsApi.md#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | +*ResultsApi* | [**getResultsSearchHosted**](docs/ResultsApi.md#getresultssearchhosted) | **GET** /data/results/search_hosted | +*ResultsApi* | [**getResultsSearchHostedDocs**](docs/ResultsApi.md#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | +*ResultsApi* | [**getResultsSearchSeries**](docs/ResultsApi.md#getresultssearchseries) | **GET** /data/results/search_series | +*ResultsApi* | [**getResultsSearchSeriesDocs**](docs/ResultsApi.md#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | +*ResultsApi* | [**getResultsSeasonResults**](docs/ResultsApi.md#getresultsseasonresults) | **GET** /data/results/season_results | +*ResultsApi* | [**getResultsSeasonResultsDocs**](docs/ResultsApi.md#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | +*SeasonApi* | [**dataDocSeasonSpectatorSubsessionidsDetailGet**](docs/SeasonApi.md#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | +*SeasonApi* | [**dataDocSeasonSpectatorSubsessionidsGet**](docs/SeasonApi.md#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | +*SeasonApi* | [**getSeasonDocs**](docs/SeasonApi.md#getseasondocs) | **GET** /data/doc/season | +*SeasonApi* | [**getSeasonList**](docs/SeasonApi.md#getseasonlist) | **GET** /data/season/list | +*SeasonApi* | [**getSeasonListDocs**](docs/SeasonApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | +*SeasonApi* | [**getSeasonRaceGuide**](docs/SeasonApi.md#getseasonraceguide) | **GET** /data/season/race_guide | +*SeasonApi* | [**getSeasonRaceGuideDocs**](docs/SeasonApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | +*SeriesApi* | [**dataDocSeriesAssetsGet**](docs/SeriesApi.md#datadocseriesassetsget) | **GET** /data/doc/series/assets | +*SeriesApi* | [**dataDocSeriesGet**](docs/SeriesApi.md#datadocseriesget) | **GET** /data/doc/series | +*SeriesApi* | [**dataDocSeriesGetGet**](docs/SeriesApi.md#datadocseriesgetget) | **GET** /data/doc/series/get | +*SeriesApi* | [**dataDocSeriesPastSeasonsGet**](docs/SeriesApi.md#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | +*SeriesApi* | [**dataDocSeriesSeasonListGet**](docs/SeriesApi.md#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | +*SeriesApi* | [**dataDocSeriesSeasonScheduleGet**](docs/SeriesApi.md#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | +*SeriesApi* | [**dataDocSeriesSeasonsGet**](docs/SeriesApi.md#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | +*SeriesApi* | [**dataDocSeriesStatsSeriesGet**](docs/SeriesApi.md#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | +*SeriesApi* | [**getSeries**](docs/SeriesApi.md#getseries) | **GET** /data/series/get | +*SeriesApi* | [**getSeriesAssets**](docs/SeriesApi.md#getseriesassets) | **GET** /data/series/assets | +*SeriesApi* | [**getSeriesPastSeasons**](docs/SeriesApi.md#getseriespastseasons) | **GET** /data/series/past_seasons | +*SeriesApi* | [**getSeriesSeasonList**](docs/SeriesApi.md#getseriesseasonlist) | **GET** /data/series/season_list | +*SeriesApi* | [**getSeriesSeasonSchedule**](docs/SeriesApi.md#getseriesseasonschedule) | **GET** /data/series/season_schedule | +*SeriesApi* | [**getSeriesSeasons**](docs/SeriesApi.md#getseriesseasons) | **GET** /data/series/seasons | +*SeriesApi* | [**getSeriesStatsSeries**](docs/SeriesApi.md#getseriesstatsseries) | **GET** /data/series/stats_series | +*StatsApi* | [**dataDocStatsGet**](docs/StatsApi.md#datadocstatsget) | **GET** /data/doc/stats | +*StatsApi* | [**dataDocStatsMemberBestsGet**](docs/StatsApi.md#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | +*StatsApi* | [**dataDocStatsMemberCareerGet**](docs/StatsApi.md#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | +*StatsApi* | [**dataDocStatsMemberDivisionGet**](docs/StatsApi.md#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | +*StatsApi* | [**dataDocStatsMemberRecapGet**](docs/StatsApi.md#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | +*StatsApi* | [**dataDocStatsMemberRecentRacesGet**](docs/StatsApi.md#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | +*StatsApi* | [**dataDocStatsMemberSummaryGet**](docs/StatsApi.md#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | +*StatsApi* | [**dataDocStatsMemberYearlyGet**](docs/StatsApi.md#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | +*StatsApi* | [**dataDocStatsSeasonDriverStandingsGet**](docs/StatsApi.md#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | +*StatsApi* | [**dataDocStatsSeasonQualifyResultsGet**](docs/StatsApi.md#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | +*StatsApi* | [**dataDocStatsSeasonSupersessionStandingsGet**](docs/StatsApi.md#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | +*StatsApi* | [**dataDocStatsSeasonTeamStandingsGet**](docs/StatsApi.md#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | +*StatsApi* | [**dataDocStatsSeasonTtResultsGet**](docs/StatsApi.md#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | +*StatsApi* | [**dataDocStatsSeasonTtStandingsGet**](docs/StatsApi.md#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | +*StatsApi* | [**dataDocStatsWorldRecordsGet**](docs/StatsApi.md#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | +*StatsApi* | [**getStatsMemberBests**](docs/StatsApi.md#getstatsmemberbests) | **GET** /data/stats/member_bests | +*StatsApi* | [**getStatsMemberCareer**](docs/StatsApi.md#getstatsmembercareer) | **GET** /data/stats/member_career | +*StatsApi* | [**getStatsMemberDivision**](docs/StatsApi.md#getstatsmemberdivision) | **GET** /data/stats/member_division | +*StatsApi* | [**getStatsMemberRecap**](docs/StatsApi.md#getstatsmemberrecap) | **GET** /data/stats/member_recap | +*StatsApi* | [**getStatsMemberRecentRaces**](docs/StatsApi.md#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | +*StatsApi* | [**getStatsMemberSummary**](docs/StatsApi.md#getstatsmembersummary) | **GET** /data/stats/member_summary | +*StatsApi* | [**getStatsMemberYearly**](docs/StatsApi.md#getstatsmemberyearly) | **GET** /data/stats/member_yearly | +*StatsApi* | [**getStatsSeasonDriverStandings**](docs/StatsApi.md#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | +*StatsApi* | [**getStatsSeasonQualifyResults**](docs/StatsApi.md#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | +*StatsApi* | [**getStatsSeasonSupersessionStandings**](docs/StatsApi.md#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | +*StatsApi* | [**getStatsSeasonTeamStandings**](docs/StatsApi.md#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | +*StatsApi* | [**getStatsSeasonTimeTrialResults**](docs/StatsApi.md#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | +*StatsApi* | [**getStatsSeasonTimeTrialStandings**](docs/StatsApi.md#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | +*StatsApi* | [**getStatsWorldRecords**](docs/StatsApi.md#getstatsworldrecords) | **GET** /data/stats/world_records | +*TeamApi* | [**getTeam**](docs/TeamApi.md#getteam) | **GET** /data/team/get | +*TeamApi* | [**getTeamDocs**](docs/TeamApi.md#getteamdocs) | **GET** /data/doc/team | +*TeamApi* | [**getTeamGetDocs**](docs/TeamApi.md#getteamgetdocs) | **GET** /data/doc/team/get | +*TeamApi* | [**getTeamMembership**](docs/TeamApi.md#getteammembership) | **GET** /data/team/membership | +*TeamApi* | [**getTeamMembershipDocs**](docs/TeamApi.md#getteammembershipdocs) | **GET** /data/doc/team/membership | +*TimeAttackApi* | [**dataDocTimeAttackGet**](docs/TimeAttackApi.md#datadoctimeattackget) | **GET** /data/doc/time_attack | +*TimeAttackApi* | [**dataDocTimeAttackMemberSeasonResultsGet**](docs/TimeAttackApi.md#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | +*TimeAttackApi* | [**getTimeAttackMemberSeasonResults**](docs/TimeAttackApi.md#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | +*TrackApi* | [**dataDocTrackAssetsGet**](docs/TrackApi.md#datadoctrackassetsget) | **GET** /data/doc/track/assets | +*TrackApi* | [**dataDocTrackGet**](docs/TrackApi.md#datadoctrackget) | **GET** /data/doc/track | +*TrackApi* | [**dataDocTrackGetGet**](docs/TrackApi.md#datadoctrackgetget) | **GET** /data/doc/track/get | +*TrackApi* | [**getTrack**](docs/TrackApi.md#gettrack) | **GET** /data/track/get | +*TrackApi* | [**getTrackAssets**](docs/TrackApi.md#gettrackassets) | **GET** /data/track/assets | + + +### Documentation For Models + + - [ErrorResponse](docs/ErrorResponse.md) + - [IracingAPIResponse](docs/IracingAPIResponse.md) + - [IracingCategory](docs/IracingCategory.md) + - [IracingChartType](docs/IracingChartType.md) + - [IracingDivision](docs/IracingDivision.md) + - [IracingEventType](docs/IracingEventType.md) + - [IracingServiceMethodDocs](docs/IracingServiceMethodDocs.md) + - [IracingServiceMethodParametersDocs](docs/IracingServiceMethodParametersDocs.md) + + + +## Documentation For Authorization + + +Authentication schemes defined for the API: + +### bearerAuth + +- **Type**: Bearer authentication (JWT) + + +### oAuth2 + +- **Type**: OAuth +- **Flow**: accessCode +- **Authorization URL**: https://oauth.iracing.com/oauth2/authorize +- **Scopes**: + - **iracing.auth**: Authorization for iRacing services. + - **iracing.profile**: Access to the iRacing profile. + diff --git a/packages/api-client/src/client/api.ts b/packages/api-client/src/client/api.ts new file mode 100644 index 0000000..8199c38 --- /dev/null +++ b/packages/api-client/src/client/api.ts @@ -0,0 +1,16586 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import type { Configuration } from './configuration'; +import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; +// Some imports not used depending on template conditions +// @ts-ignore +import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; +import type { RequestArgs } from './base'; +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerMap } from './base'; + +export interface ErrorResponse { + 'error': string; + 'message'?: string; + 'note'?: string; +} +/** + * Response from iRacing `/data` API. + */ +export interface IracingAPIResponse { + /** + * A link to the cached data + */ + 'link': string; + 'expires': string; +} +/** + * Racing category. + */ + +export const IracingCategory = { + /** + * Oval discipline + */ + Oval: 'oval', + /** + * Road discipline. Legacy, use `sports_car` or `formula_car` instead. + */ + Road: 'road', + /** + * Dirt road discipline. + */ + DirtRoad: 'dirt_road', + /** + * Dirt oval discipline. + */ + DirtOval: 'dirt_oval', + /** + * Sports car discipline. + */ + SportsCar: 'sports_car', + /** + * Formula car discipline. + */ + FormulaCar: 'formula_car' +} as const; + +export type IracingCategory = typeof IracingCategory[keyof typeof IracingCategory]; + + +/** + * iRacing Chart Type + */ + +export const IracingChartType = { + /** + * iRating + */ + NUMBER_1: 1, + /** + * Time trial rating + */ + NUMBER_2: 2, + /** + * License rating + */ + NUMBER_3: 3 +} as const; + +export type IracingChartType = typeof IracingChartType[keyof typeof IracingChartType]; + + +/** + * iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. + */ + +export const IracingDivision = { + /** + * Division 1 + */ + NUMBER_0: 0, + /** + * Division 2 + */ + NUMBER_1: 1, + /** + * Division 3 + */ + NUMBER_2: 2, + /** + * Division 4 + */ + NUMBER_3: 3, + /** + * Division 5 + */ + NUMBER_4: 4, + /** + * Division 6 + */ + NUMBER_5: 5, + /** + * Division 7 + */ + NUMBER_6: 6, + /** + * Division 8 + */ + NUMBER_7: 7, + /** + * Division 9 + */ + NUMBER_8: 8, + /** + * Division 10 + */ + NUMBER_9: 9, + /** + * Rookie + */ + NUMBER_10: 10 +} as const; + +export type IracingDivision = typeof IracingDivision[keyof typeof IracingDivision]; + + +/** + * iRacing Event Type + */ + +export const IracingEventType = { + /** + * Practice + */ + NUMBER_2: 2, + /** + * Qualifying + */ + NUMBER_3: 3, + /** + * Time trial + */ + NUMBER_4: 4, + /** + * Race + */ + NUMBER_5: 5 +} as const; + +export type IracingEventType = typeof IracingEventType[keyof typeof IracingEventType]; + + +/** + * An iRacing API Service Method object. + */ +export interface IracingServiceMethodDocs { + 'link': string; + 'parameters': { [key: string]: IracingServiceMethodParametersDocs; }; + 'expirationSeconds'?: number; +} +/** + * An iRacing API Service Method Parameters object. + */ +export interface IracingServiceMethodParametersDocs { + 'type': string; + 'note'?: string; + 'required'?: boolean; +} + +/** + * CarApi - axios parameter creator + */ +export const CarApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCar: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/car/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * image paths are relative to https://images-static.iracing.com/ + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarAssets: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/car/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * CarApi - functional programming interface + */ +export const CarApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = CarApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCar(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCar(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarApi.getCar']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * image paths are relative to https://images-static.iracing.com/ + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssets(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarApi.getCarAssets']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssetsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarApi.getCarAssetsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarApi.getCarDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarApi.getCarGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * CarApi - factory interface + */ +export const CarApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = CarApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCar(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCar(options).then((request) => request(axios, basePath)); + }, + /** + * image paths are relative to https://images-static.iracing.com/ + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarAssets(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarAssets(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarAssetsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getCarDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarGetDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * CarApi - object-oriented interface + */ +export class CarApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCar(options?: RawAxiosRequestConfig) { + return CarApiFp(this.configuration).getCar(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * image paths are relative to https://images-static.iracing.com/ + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarAssets(options?: RawAxiosRequestConfig) { + return CarApiFp(this.configuration).getCarAssets(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarAssetsDocs(options?: RawAxiosRequestConfig) { + return CarApiFp(this.configuration).getCarAssetsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarDocs(options?: RawAxiosRequestConfig) { + return CarApiFp(this.configuration).getCarDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarGetDocs(options?: RawAxiosRequestConfig) { + return CarApiFp(this.configuration).getCarGetDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * CarclassApi - axios parameter creator + */ +export const CarclassApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @summary Gets car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClass: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/carclass/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * CarclassApi - functional programming interface + */ +export const CarclassApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = CarclassApiAxiosParamCreator(configuration) + return { + /** + * + * @summary Gets car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarClass(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClass(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarclassApi.getCarClass']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarClassDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarclassApi.getCarClassDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarClassGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarclassApi.getCarClassGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * CarclassApi - factory interface + */ +export const CarclassApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = CarclassApiFp(configuration) + return { + /** + * + * @summary Gets car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClass(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarClass(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getCarClassDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarClassGetDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * CarclassApi - object-oriented interface + */ +export class CarclassApi extends BaseAPI { + /** + * + * @summary Gets car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarClass(options?: RawAxiosRequestConfig) { + return CarclassApiFp(this.configuration).getCarClass(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarClassDocs(options?: RawAxiosRequestConfig) { + return CarclassApiFp(this.configuration).getCarClassDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarClassGetDocs(options?: RawAxiosRequestConfig) { + return CarclassApiFp(this.configuration).getCarClassGetDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * ConstantsApi - axios parameter creator + */ +export const ConstantsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsCategories: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/constants/categories`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsCategoriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/categories`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDivisions: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/constants/divisions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDivisionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/divisions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsEventTypes: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/constants/event_types`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsEventTypesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/event_types`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * ConstantsApi - functional programming interface + */ +export const ConstantsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = ConstantsApiAxiosParamCreator(configuration) + return { + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsCategories(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategories(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsCategories']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategoriesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsCategoriesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsDivisions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisions(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsDivisions']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsDivisionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsEventTypes(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypes(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsEventTypes']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsEventTypesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * ConstantsApi - factory interface + */ +export const ConstantsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = ConstantsApiFp(configuration) + return { + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsCategories(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsCategories(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsCategoriesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDivisions(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsDivisions(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsDivisionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getConstantsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsEventTypes(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsEventTypes(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsEventTypesDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * ConstantsApi - object-oriented interface + */ +export class ConstantsApi extends BaseAPI { + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsCategories(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsCategories(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsCategoriesDocs(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsCategoriesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsDivisions(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsDivisions(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsDivisionsDocs(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsDivisionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsDocs(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsEventTypes(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsEventTypes(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsEventTypesDocs(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsEventTypesDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * DocApi - axios parameter creator + */ +export const DocApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsDetailGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesPastSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/past_seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonListGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_list`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonScheduleGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_schedule`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesStatsSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/stats_series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberBestsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_bests`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberCareerGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_career`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberDivisionGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_division`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecapGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recap`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecentRacesGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recent_races`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberSummaryGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_summary`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberYearlyGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_yearly`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonDriverStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_driver_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonQualifyResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_qualify_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonSupersessionStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_supersession_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTeamStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_team_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsWorldRecordsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/world_records`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackMemberSeasonResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack/member_season_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsCategoriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/categories`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDivisionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/divisions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsEventTypesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/event_types`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {IracingCategory} category Racing category. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryCategoryDocs: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'category' is not null or undefined + assertParamExists('getDriverStatsByCategoryCategoryDocs', 'category', category) + const localVarPath = `/data/doc/driver_stats_by_category/{category}` + .replace(`{${"category"}}`, encodeURIComponent(String(category))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/driver_stats_by_category`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedCombinedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/combined_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueCustomerLeagueSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/cust_league_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDirectoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/directory`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetPointsSystemsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get_points_systems`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/membership`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueRosterDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/roster`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupCountriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/countries`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDriversDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/drivers`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupFlairsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/flairs`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupLicensesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/licenses`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardInstancesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/award_instances`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/awards`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/chart_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberInfoDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/info`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberParticipationCreditsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/participation_credits`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberProfileDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/profile`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsEventLogDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/event_log`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_chart_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_hosted`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/season_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/list`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/race_guide`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/membership`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * DocApi - functional programming interface + */ +export const DocApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = DocApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsDetailGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeasonSpectatorSubsessionidsDetailGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeasonSpectatorSubsessionidsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesAssetsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesAssetsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGetGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesGetGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesPastSeasonsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesPastSeasonsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonListGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesSeasonListGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonScheduleGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesSeasonScheduleGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesSeasonsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesStatsSeriesGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesStatsSeriesGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberBestsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberBestsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberCareerGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberCareerGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberDivisionGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberDivisionGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecapGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberRecapGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecentRacesGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberRecentRacesGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberSummaryGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberSummaryGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberYearlyGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberYearlyGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonDriverStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonDriverStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonQualifyResultsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonQualifyResultsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonSupersessionStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonSupersessionStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTeamStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonTeamStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtResultsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonTtResultsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonTtStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsWorldRecordsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsWorldRecordsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTimeAttackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTimeAttackGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackMemberSeasonResultsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTimeAttackMemberSeasonResultsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackAssetsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTrackAssetsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTrackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTrackGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTrackGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGetGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTrackGetGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssetsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarAssetsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarClassDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarClassGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getCarGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategoriesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsCategoriesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDivisionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsEventTypesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {IracingCategory} category Racing category. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getDriverStatsByCategoryCategoryDocs(category: IracingCategory, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryCategoryDocs(category, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getDriverStatsByCategoryCategoryDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getDriverStatsByCategoryDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedCombinedSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedCombinedSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueCustomerLeagueSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectoryDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueDirectoryDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetPointsSystemsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueGetPointsSystemsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembershipDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueMembershipDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueRosterDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRosterDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueRosterDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandingsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonStandingsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupCountriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountriesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupCountriesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupDriversDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDriversDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupDriversDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupFlairsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupFlairsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupFlairsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupLicensesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupLicensesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupLicensesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstancesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberAwardInstancesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberAwardsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberAwardsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartDataDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberChartDataDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberInfoDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfoDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberInfoDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCreditsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberParticipationCreditsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberProfileDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberProfileDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberProfileDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsEventLogDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsEventLogDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsEventLogDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapChartDataDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsLapChartDataDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsLapDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapDataDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsLapDataDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchHostedDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSearchHostedDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchSeriesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSearchSeriesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSeasonResultsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonListDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonListDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonRaceGuideDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonRaceGuideDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeamDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeamGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeamMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamMembershipDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamMembershipDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * DocApi - factory interface + */ +export const DocApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = DocApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesAssetsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocSeriesGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGetGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesGetGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesPastSeasonsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesSeasonListGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesSeasonScheduleGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesSeasonsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesStatsSeriesGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocStatsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberBestsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberCareerGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberDivisionGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberRecapGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberRecentRacesGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberSummaryGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberYearlyGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonTtResultsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonTtStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsWorldRecordsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocTimeAttackGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocTrackAssetsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocTrackGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGetGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocTrackGetGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarAssetsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getCarClassDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClassGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarClassGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getCarDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsCategoriesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsDivisionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getConstantsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsEventTypesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }> { + return localVarFp.getDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {DocApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryCategoryDocs(requestParameters: DocApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getDriverStatsByCategoryDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedCombinedSessionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getHostedDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedSessionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueDirectoryDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getLeagueDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueGetPointsSystemsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueMembershipDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueRosterDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueRosterDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonSessionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonStandingsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupCountriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupCountriesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getLookupDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDriversDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupDriversDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupFlairsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupFlairsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupLicensesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupLicensesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwardInstancesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwardsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberChartDataDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getMemberDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberInfoDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberInfoDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberParticipationCreditsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberProfileDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberProfileDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getResultsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsEventLogDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsEventLogDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapChartDataDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapDataDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchHostedDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchSeriesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSeasonResultsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getSeasonDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonListDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonRaceGuideDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getTeamDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeamGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeamMembershipDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getDriverStatsByCategoryCategoryDocs operation in DocApi. + */ +export interface DocApiGetDriverStatsByCategoryCategoryDocsRequest { + /** + * Racing category. + */ + readonly category: IracingCategory +} + +/** + * DocApi - object-oriented interface + */ +export class DocApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesAssetsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesGetGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesGetGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesPastSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesSeasonListGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesSeasonScheduleGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocSeriesStatsSeriesGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsMemberBestsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsMemberCareerGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsMemberDivisionGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsMemberRecapGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsMemberRecentRacesGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsMemberSummaryGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsMemberYearlyGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsSeasonTtResultsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsSeasonTtStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocStatsWorldRecordsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTimeAttackGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocTimeAttackGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTrackAssetsGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocTrackAssetsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTrackGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocTrackGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTrackGetGet(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).dataDocTrackGetGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarAssetsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarAssetsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarClassDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarClassDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarClassGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarClassGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsCategoriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsCategoriesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsDivisionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsDivisionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getConstantsEventTypesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsEventTypesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {DocApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getDriverStatsByCategoryCategoryDocs(requestParameters: DocApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getDriverStatsByCategoryDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getHostedCombinedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getHostedDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getHostedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueDirectoryDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueDirectoryDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueGetPointsSystemsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueMembershipDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueMembershipDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueRosterDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueRosterDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueSeasonSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueSeasonStandingsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupCountriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupCountriesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupDriversDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupDriversDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupFlairsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupFlairsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupLicensesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupLicensesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberAwardInstancesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberAwardsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberAwardsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberChartDataDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberChartDataDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberInfoDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberInfoDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberParticipationCreditsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberProfileDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberProfileDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsEventLogDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsEventLogDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsLapChartDataDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsLapChartDataDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsLapDataDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsLapDataDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSearchHostedDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsSearchHostedDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsSearchSeriesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonListDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeamDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTeamDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeamGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTeamGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeamMembershipDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTeamMembershipDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * DriverStatsApi - axios parameter creator + */ +export const DriverStatsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {IracingCategory} category Racing category. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategory: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'category' is not null or undefined + assertParamExists('getDriverStatsByCategory', 'category', category) + const localVarPath = `/data/driver_stats_by_category/{category}` + .replace(`{${"category"}}`, encodeURIComponent(String(category))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {IracingCategory} category Racing category. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryCategoryDocs: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'category' is not null or undefined + assertParamExists('getDriverStatsByCategoryCategoryDocs', 'category', category) + const localVarPath = `/data/doc/driver_stats_by_category/{category}` + .replace(`{${"category"}}`, encodeURIComponent(String(category))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/driver_stats_by_category`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * DriverStatsApi - functional programming interface + */ +export const DriverStatsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = DriverStatsApiAxiosParamCreator(configuration) + return { + /** + * + * @param {IracingCategory} category Racing category. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getDriverStatsByCategory(category: IracingCategory, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategory(category, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DriverStatsApi.getDriverStatsByCategory']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {IracingCategory} category Racing category. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getDriverStatsByCategoryCategoryDocs(category: IracingCategory, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryCategoryDocs(category, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DriverStatsApi.getDriverStatsByCategoryCategoryDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DriverStatsApi.getDriverStatsByCategoryDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * DriverStatsApi - factory interface + */ +export const DriverStatsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = DriverStatsApiFp(configuration) + return { + /** + * + * @param {DriverStatsApiGetDriverStatsByCategoryRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategory(requestParameters: DriverStatsApiGetDriverStatsByCategoryRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getDriverStatsByCategory(requestParameters.category, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryCategoryDocs(requestParameters: DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getDriverStatsByCategoryDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getDriverStatsByCategory operation in DriverStatsApi. + */ +export interface DriverStatsApiGetDriverStatsByCategoryRequest { + /** + * Racing category. + */ + readonly category: IracingCategory +} + +/** + * Request parameters for getDriverStatsByCategoryCategoryDocs operation in DriverStatsApi. + */ +export interface DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest { + /** + * Racing category. + */ + readonly category: IracingCategory +} + +/** + * DriverStatsApi - object-oriented interface + */ +export class DriverStatsApi extends BaseAPI { + /** + * + * @param {DriverStatsApiGetDriverStatsByCategoryRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getDriverStatsByCategory(requestParameters: DriverStatsApiGetDriverStatsByCategoryRequest, options?: RawAxiosRequestConfig) { + return DriverStatsApiFp(this.configuration).getDriverStatsByCategory(requestParameters.category, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getDriverStatsByCategoryCategoryDocs(requestParameters: DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig) { + return DriverStatsApiFp(this.configuration).getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig) { + return DriverStatsApiFp(this.configuration).getDriverStatsByCategoryDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * HostedApi - axios parameter creator + */ +export const HostedApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + * @param {number} [package_id] If set, return only sessions using this car or track package ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedCombinedSessions: async (package_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/hosted/combined_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (package_id !== undefined) { + localVarQueryParameter['package_id'] = package_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedCombinedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/combined_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedSessions: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/hosted/sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * HostedApi - functional programming interface + */ +export const HostedApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = HostedApiAxiosParamCreator(configuration) + return { + /** + * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + * @param {number} [package_id] If set, return only sessions using this car or track package ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedCombinedSessions(package_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedCombinedSessions(package_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedCombinedSessions']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedCombinedSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedCombinedSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedSessions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedSessions(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedSessions']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getHostedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * HostedApi - factory interface + */ +export const HostedApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = HostedApiFp(configuration) + return { + /** + * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + * @param {HostedApiGetHostedCombinedSessionsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedCombinedSessions(requestParameters: HostedApiGetHostedCombinedSessionsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedCombinedSessions(requestParameters.package_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedCombinedSessionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getHostedDocs(options).then((request) => request(axios, basePath)); + }, + /** + * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedSessions(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedSessions(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getHostedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedSessionsDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getHostedCombinedSessions operation in HostedApi. + */ +export interface HostedApiGetHostedCombinedSessionsRequest { + /** + * If set, return only sessions using this car or track package ID. + */ + readonly package_id?: number +} + +/** + * HostedApi - object-oriented interface + */ +export class HostedApi extends BaseAPI { + /** + * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + * @param {HostedApiGetHostedCombinedSessionsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedCombinedSessions(requestParameters: HostedApiGetHostedCombinedSessionsRequest = {}, options?: RawAxiosRequestConfig) { + return HostedApiFp(this.configuration).getHostedCombinedSessions(requestParameters.package_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig) { + return HostedApiFp(this.configuration).getHostedCombinedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedDocs(options?: RawAxiosRequestConfig) { + return HostedApiFp(this.configuration).getHostedDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedSessions(options?: RawAxiosRequestConfig) { + return HostedApiFp(this.configuration).getHostedSessions(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getHostedSessionsDocs(options?: RawAxiosRequestConfig) { + return HostedApiFp(this.configuration).getHostedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * LeagueApi - axios parameter creator + */ +export const LeagueApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {number} league_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeague: async (league_id: number, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeague', 'league_id', league_id) + const localVarPath = `/data/league/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (include_licenses !== undefined) { + localVarQueryParameter['include_licenses'] = include_licenses; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {boolean} [mine] If true, return only sessions created by this user. + * @param {number} [package_id] If set, return only sessions using this car or track package ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueCustomerLeagueSessions: async (mine?: boolean, package_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/league/cust_league_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (mine !== undefined) { + localVarQueryParameter['mine'] = mine; + } + + if (package_id !== undefined) { + localVarQueryParameter['package_id'] = package_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueCustomerLeagueSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/cust_league_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {string} [search] Will search against league name, description, owner, and league ID. + * @param {string} [tag] One or more tags, comma-separated. + * @param {boolean} [restrict_to_member] If true include only leagues for which customer is a member. + * @param {boolean} [restrict_to_recruiting] If true include only leagues which are recruiting. + * @param {boolean} [restrict_to_friends] If true include only leagues owned by a friend. + * @param {boolean} [restrict_to_watched] If true include only leagues owned by a watched member. + * @param {number} [minimum_roster_count] If set include leagues with at least this number of members. + * @param {number} [maximum_roster_count] If set include leagues with no more than this number of members. + * @param {number} [lowerbound] First row of results to return. Defaults to 1. + * @param {number} [upperbound] Last row of results to return. Defaults to lowerbound + 39. + * @param {string} [sort] One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. + * @param {string} [order] One of asc or desc. Defaults to asc. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDirectory: async (search?: string, tag?: string, restrict_to_member?: boolean, restrict_to_recruiting?: boolean, restrict_to_friends?: boolean, restrict_to_watched?: boolean, minimum_roster_count?: number, maximum_roster_count?: number, lowerbound?: number, upperbound?: number, sort?: string, order?: string, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/league/directory`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (search !== undefined) { + localVarQueryParameter['search'] = search; + } + + if (tag !== undefined) { + localVarQueryParameter['tag'] = tag; + } + + if (restrict_to_member !== undefined) { + localVarQueryParameter['restrict_to_member'] = restrict_to_member; + } + + if (restrict_to_recruiting !== undefined) { + localVarQueryParameter['restrict_to_recruiting'] = restrict_to_recruiting; + } + + if (restrict_to_friends !== undefined) { + localVarQueryParameter['restrict_to_friends'] = restrict_to_friends; + } + + if (restrict_to_watched !== undefined) { + localVarQueryParameter['restrict_to_watched'] = restrict_to_watched; + } + + if (minimum_roster_count !== undefined) { + localVarQueryParameter['minimum_roster_count'] = minimum_roster_count; + } + + if (maximum_roster_count !== undefined) { + localVarQueryParameter['maximum_roster_count'] = maximum_roster_count; + } + + if (lowerbound !== undefined) { + localVarQueryParameter['lowerbound'] = lowerbound; + } + + if (upperbound !== undefined) { + localVarQueryParameter['upperbound'] = upperbound; + } + + if (sort !== undefined) { + localVarQueryParameter['sort'] = sort; + } + + if (order !== undefined) { + localVarQueryParameter['order'] = order; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDirectoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/directory`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetPointsSystemsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get_points_systems`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. + * @param {boolean} [include_league] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueMembership: async (cust_id?: number, include_league?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/league/membership`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (include_league !== undefined) { + localVarQueryParameter['include_league'] = include_league; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/membership`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} league_id + * @param {number} [season_id] If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeaguePointsSystems: async (league_id: number, season_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeaguePointsSystems', 'league_id', league_id) + const localVarPath = `/data/league/get_points_systems`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} league_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueRoster: async (league_id: number, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeagueRoster', 'league_id', league_id) + const localVarPath = `/data/league/roster`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (include_licenses !== undefined) { + localVarQueryParameter['include_licenses'] = include_licenses; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueRosterDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/roster`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} league_id + * @param {number} season_id + * @param {boolean} [results_only] If true include only sessions for which results are available. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonSessions: async (league_id: number, season_id: number, results_only?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeagueSeasonSessions', 'league_id', league_id) + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getLeagueSeasonSessions', 'season_id', season_id) + const localVarPath = `/data/league/season_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (results_only !== undefined) { + localVarQueryParameter['results_only'] = results_only; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_sessions`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} league_id + * @param {number} season_id + * @param {number} [car_class_id] + * @param {number} [car_id] If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonStandings: async (league_id: number, season_id: number, car_class_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeagueSeasonStandings', 'league_id', league_id) + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getLeagueSeasonStandings', 'season_id', season_id) + const localVarPath = `/data/league/season_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (car_id !== undefined) { + localVarQueryParameter['car_id'] = car_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} league_id + * @param {boolean} [retired] If true include seasons which are no longer active. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasons: async (league_id: number, retired?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeagueSeasons', 'league_id', league_id) + const localVarPath = `/data/league/seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (retired !== undefined) { + localVarQueryParameter['retired'] = retired; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * LeagueApi - functional programming interface + */ +export const LeagueApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = LeagueApiAxiosParamCreator(configuration) + return { + /** + * + * @param {number} league_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeague(league_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeague(league_id, include_licenses, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeague']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {boolean} [mine] If true, return only sessions created by this user. + * @param {number} [package_id] If set, return only sessions using this car or track package ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueCustomerLeagueSessions(mine?: boolean, package_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessions(mine, package_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueCustomerLeagueSessions']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueCustomerLeagueSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {string} [search] Will search against league name, description, owner, and league ID. + * @param {string} [tag] One or more tags, comma-separated. + * @param {boolean} [restrict_to_member] If true include only leagues for which customer is a member. + * @param {boolean} [restrict_to_recruiting] If true include only leagues which are recruiting. + * @param {boolean} [restrict_to_friends] If true include only leagues owned by a friend. + * @param {boolean} [restrict_to_watched] If true include only leagues owned by a watched member. + * @param {number} [minimum_roster_count] If set include leagues with at least this number of members. + * @param {number} [maximum_roster_count] If set include leagues with no more than this number of members. + * @param {number} [lowerbound] First row of results to return. Defaults to 1. + * @param {number} [upperbound] Last row of results to return. Defaults to lowerbound + 39. + * @param {string} [sort] One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. + * @param {string} [order] One of asc or desc. Defaults to asc. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueDirectory(search?: string, tag?: string, restrict_to_member?: boolean, restrict_to_recruiting?: boolean, restrict_to_friends?: boolean, restrict_to_watched?: boolean, minimum_roster_count?: number, maximum_roster_count?: number, lowerbound?: number, upperbound?: number, sort?: string, order?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectory(search, tag, restrict_to_member, restrict_to_recruiting, restrict_to_friends, restrict_to_watched, minimum_roster_count, maximum_roster_count, lowerbound, upperbound, sort, order, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueDirectory']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectoryDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueDirectoryDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetPointsSystemsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueGetPointsSystemsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. + * @param {boolean} [include_league] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueMembership(cust_id?: number, include_league?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembership(cust_id, include_league, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueMembership']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembershipDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueMembershipDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} league_id + * @param {number} [season_id] If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeaguePointsSystems(league_id: number, season_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeaguePointsSystems(league_id, season_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeaguePointsSystems']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} league_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueRoster(league_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRoster(league_id, include_licenses, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueRoster']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueRosterDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRosterDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueRosterDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} league_id + * @param {number} season_id + * @param {boolean} [results_only] If true include only sessions for which results are available. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonSessions(league_id: number, season_id: number, results_only?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessions(league_id, season_id, results_only, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonSessions']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonSessionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} league_id + * @param {number} season_id + * @param {number} [car_class_id] + * @param {number} [car_id] If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonStandings(league_id: number, season_id: number, car_class_id?: number, car_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandings(league_id, season_id, car_class_id, car_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonStandings']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandingsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonStandingsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} league_id + * @param {boolean} [retired] If true include seasons which are no longer active. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasons(league_id: number, retired?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasons(league_id, retired, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasons']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * LeagueApi - factory interface + */ +export const LeagueApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = LeagueApiFp(configuration) + return { + /** + * + * @param {LeagueApiGetLeagueRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeague(requestParameters: LeagueApiGetLeagueRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeague(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeagueCustomerLeagueSessionsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueCustomerLeagueSessions(requestParameters: LeagueApiGetLeagueCustomerLeagueSessionsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueCustomerLeagueSessions(requestParameters.mine, requestParameters.package_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeagueDirectoryRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDirectory(requestParameters: LeagueApiGetLeagueDirectoryRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueDirectory(requestParameters.search, requestParameters.tag, requestParameters.restrict_to_member, requestParameters.restrict_to_recruiting, requestParameters.restrict_to_friends, requestParameters.restrict_to_watched, requestParameters.minimum_roster_count, requestParameters.maximum_roster_count, requestParameters.lowerbound, requestParameters.upperbound, requestParameters.sort, requestParameters.order, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueDirectoryDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getLeagueDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueGetPointsSystemsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeagueMembershipRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueMembership(requestParameters: LeagueApiGetLeagueMembershipRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueMembership(requestParameters.cust_id, requestParameters.include_league, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueMembershipDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeaguePointsSystemsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeaguePointsSystems(requestParameters: LeagueApiGetLeaguePointsSystemsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeaguePointsSystems(requestParameters.league_id, requestParameters.season_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeagueRosterRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueRoster(requestParameters: LeagueApiGetLeagueRosterRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueRoster(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueRosterDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueRosterDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeagueSeasonSessionsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonSessions(requestParameters: LeagueApiGetLeagueSeasonSessionsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonSessions(requestParameters.league_id, requestParameters.season_id, requestParameters.results_only, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonSessionsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeagueSeasonStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonStandings(requestParameters: LeagueApiGetLeagueSeasonStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonStandings(requestParameters.league_id, requestParameters.season_id, requestParameters.car_class_id, requestParameters.car_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonStandingsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LeagueApiGetLeagueSeasonsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasons(requestParameters: LeagueApiGetLeagueSeasonsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasons(requestParameters.league_id, requestParameters.retired, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonsDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getLeague operation in LeagueApi. + */ +export interface LeagueApiGetLeagueRequest { + readonly league_id: number + + /** + * For faster responses, only request when necessary. + */ + readonly include_licenses?: boolean +} + +/** + * Request parameters for getLeagueCustomerLeagueSessions operation in LeagueApi. + */ +export interface LeagueApiGetLeagueCustomerLeagueSessionsRequest { + /** + * If true, return only sessions created by this user. + */ + readonly mine?: boolean + + /** + * If set, return only sessions using this car or track package ID. + */ + readonly package_id?: number +} + +/** + * Request parameters for getLeagueDirectory operation in LeagueApi. + */ +export interface LeagueApiGetLeagueDirectoryRequest { + /** + * Will search against league name, description, owner, and league ID. + */ + readonly search?: string + + /** + * One or more tags, comma-separated. + */ + readonly tag?: string + + /** + * If true include only leagues for which customer is a member. + */ + readonly restrict_to_member?: boolean + + /** + * If true include only leagues which are recruiting. + */ + readonly restrict_to_recruiting?: boolean + + /** + * If true include only leagues owned by a friend. + */ + readonly restrict_to_friends?: boolean + + /** + * If true include only leagues owned by a watched member. + */ + readonly restrict_to_watched?: boolean + + /** + * If set include leagues with at least this number of members. + */ + readonly minimum_roster_count?: number + + /** + * If set include leagues with no more than this number of members. + */ + readonly maximum_roster_count?: number + + /** + * First row of results to return. Defaults to 1. + */ + readonly lowerbound?: number + + /** + * Last row of results to return. Defaults to lowerbound + 39. + */ + readonly upperbound?: number + + /** + * One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. + */ + readonly sort?: string + + /** + * One of asc or desc. Defaults to asc. + */ + readonly order?: string +} + +/** + * Request parameters for getLeagueMembership operation in LeagueApi. + */ +export interface LeagueApiGetLeagueMembershipRequest { + /** + * If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. + */ + readonly cust_id?: number + + readonly include_league?: boolean +} + +/** + * Request parameters for getLeaguePointsSystems operation in LeagueApi. + */ +export interface LeagueApiGetLeaguePointsSystemsRequest { + readonly league_id: number + + /** + * If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. + */ + readonly season_id?: number +} + +/** + * Request parameters for getLeagueRoster operation in LeagueApi. + */ +export interface LeagueApiGetLeagueRosterRequest { + readonly league_id: number + + /** + * For faster responses, only request when necessary. + */ + readonly include_licenses?: boolean +} + +/** + * Request parameters for getLeagueSeasonSessions operation in LeagueApi. + */ +export interface LeagueApiGetLeagueSeasonSessionsRequest { + readonly league_id: number + + readonly season_id: number + + /** + * If true include only sessions for which results are available. + */ + readonly results_only?: boolean +} + +/** + * Request parameters for getLeagueSeasonStandings operation in LeagueApi. + */ +export interface LeagueApiGetLeagueSeasonStandingsRequest { + readonly league_id: number + + readonly season_id: number + + readonly car_class_id?: number + + /** + * If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. + */ + readonly car_id?: number +} + +/** + * Request parameters for getLeagueSeasons operation in LeagueApi. + */ +export interface LeagueApiGetLeagueSeasonsRequest { + readonly league_id: number + + /** + * If true include seasons which are no longer active. + */ + readonly retired?: boolean +} + +/** + * LeagueApi - object-oriented interface + */ +export class LeagueApi extends BaseAPI { + /** + * + * @param {LeagueApiGetLeagueRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeague(requestParameters: LeagueApiGetLeagueRequest, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeague(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeagueCustomerLeagueSessionsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueCustomerLeagueSessions(requestParameters: LeagueApiGetLeagueCustomerLeagueSessionsRequest = {}, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueCustomerLeagueSessions(requestParameters.mine, requestParameters.package_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeagueDirectoryRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueDirectory(requestParameters: LeagueApiGetLeagueDirectoryRequest = {}, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueDirectory(requestParameters.search, requestParameters.tag, requestParameters.restrict_to_member, requestParameters.restrict_to_recruiting, requestParameters.restrict_to_friends, requestParameters.restrict_to_watched, requestParameters.minimum_roster_count, requestParameters.maximum_roster_count, requestParameters.lowerbound, requestParameters.upperbound, requestParameters.sort, requestParameters.order, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueDirectoryDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueDirectoryDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueGetDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueGetPointsSystemsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeagueMembershipRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueMembership(requestParameters: LeagueApiGetLeagueMembershipRequest = {}, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueMembership(requestParameters.cust_id, requestParameters.include_league, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueMembershipDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueMembershipDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeaguePointsSystemsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeaguePointsSystems(requestParameters: LeagueApiGetLeaguePointsSystemsRequest, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeaguePointsSystems(requestParameters.league_id, requestParameters.season_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeagueRosterRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueRoster(requestParameters: LeagueApiGetLeagueRosterRequest, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueRoster(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueRosterDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueRosterDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeagueSeasonSessionsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonSessions(requestParameters: LeagueApiGetLeagueSeasonSessionsRequest, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueSeasonSessions(requestParameters.league_id, requestParameters.season_id, requestParameters.results_only, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueSeasonSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeagueSeasonStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonStandings(requestParameters: LeagueApiGetLeagueSeasonStandingsRequest, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueSeasonStandings(requestParameters.league_id, requestParameters.season_id, requestParameters.car_class_id, requestParameters.car_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueSeasonStandingsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LeagueApiGetLeagueSeasonsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasons(requestParameters: LeagueApiGetLeagueSeasonsRequest, options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueSeasons(requestParameters.league_id, requestParameters.retired, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLeagueSeasonsDocs(options?: RawAxiosRequestConfig) { + return LeagueApiFp(this.configuration).getLeagueSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * LookupApi - axios parameter creator + */ +export const LookupApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookup: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/lookup/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupCountries: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/lookup/countries`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupCountriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/countries`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {string} search_term A cust_id or partial name for which to search. + * @param {number} [league_id] Narrow the search to the roster of the given league. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDrivers: async (search_term: string, league_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'search_term' is not null or undefined + assertParamExists('getLookupDrivers', 'search_term', search_term) + const localVarPath = `/data/lookup/drivers`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (search_term !== undefined) { + localVarQueryParameter['search_term'] = search_term; + } + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDriversDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/drivers`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupFlairs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/lookup/flairs`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupFlairsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/flairs`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupLicenses: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/lookup/licenses`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupLicensesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/licenses`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * LookupApi - functional programming interface + */ +export const LookupApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = LookupApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookup(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookup(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookup']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupCountries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountries(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupCountries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupCountriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountriesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupCountriesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {string} search_term A cust_id or partial name for which to search. + * @param {number} [league_id] Narrow the search to the roster of the given league. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupDrivers(search_term: string, league_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDrivers(search_term, league_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupDrivers']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupDriversDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDriversDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupDriversDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupFlairs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupFlairs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupFlairs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupFlairsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupFlairsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupFlairsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupLicenses(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupLicenses(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupLicenses']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getLookupLicensesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupLicensesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupLicensesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * LookupApi - factory interface + */ +export const LookupApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = LookupApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookup(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookup(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupCountries(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupCountries(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupCountriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupCountriesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getLookupDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {LookupApiGetLookupDriversRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDrivers(requestParameters: LookupApiGetLookupDriversRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupDrivers(requestParameters.search_term, requestParameters.league_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupDriversDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupDriversDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupFlairs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupFlairs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupFlairsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupFlairsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupLicenses(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupLicenses(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getLookupLicensesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupLicensesDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getLookupDrivers operation in LookupApi. + */ +export interface LookupApiGetLookupDriversRequest { + /** + * A cust_id or partial name for which to search. + */ + readonly search_term: string + + /** + * Narrow the search to the roster of the given league. + */ + readonly league_id?: number +} + +/** + * LookupApi - object-oriented interface + */ +export class LookupApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookup(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookup(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupCountries(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupCountries(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupCountriesDocs(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupCountriesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupDocs(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {LookupApiGetLookupDriversRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupDrivers(requestParameters: LookupApiGetLookupDriversRequest, options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupDrivers(requestParameters.search_term, requestParameters.league_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupDriversDocs(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupDriversDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupFlairs(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupFlairs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupFlairsDocs(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupFlairsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupGetDocs(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupLicenses(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupLicenses(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getLookupLicensesDocs(options?: RawAxiosRequestConfig) { + return LookupApiFp(this.configuration).getLookupLicensesDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * MemberApi - axios parameter creator + */ +export const MemberApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {Array} cust_ids ?cust_ids=2,3,4 + * @param {boolean} [include_licenses] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMember: async (cust_ids: Array, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'cust_ids' is not null or undefined + assertParamExists('getMember', 'cust_ids', cust_ids) + const localVarPath = `/data/member/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_ids) { + localVarQueryParameter['cust_ids'] = cust_ids; + } + + if (include_licenses !== undefined) { + localVarQueryParameter['include_licenses'] = include_licenses; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} award_id + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardInstances: async (award_id: number, cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'award_id' is not null or undefined + assertParamExists('getMemberAwardInstances', 'award_id', award_id) + const localVarPath = `/data/member/award_instances`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (award_id !== undefined) { + localVarQueryParameter['award_id'] = award_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardInstancesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/award_instances`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwards: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/awards`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/awards`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road + * @param {IracingChartType} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberChartData: async (category_id: number, chart_type: IracingChartType, cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'category_id' is not null or undefined + assertParamExists('getMemberChartData', 'category_id', category_id) + // verify required parameter 'chart_type' is not null or undefined + assertParamExists('getMemberChartData', 'chart_type', chart_type) + const localVarPath = `/data/member/chart_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (category_id !== undefined) { + localVarQueryParameter['category_id'] = category_id; + } + + if (chart_type !== undefined) { + localVarQueryParameter['chart_type'] = chart_type; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/chart_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberInfo: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/info`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberInfoDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/info`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberParticipationCredits: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/participation_credits`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberParticipationCreditsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/participation_credits`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @summary Gets a requested user\'s profile. + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberProfile: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/profile`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberProfileDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/profile`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * MemberApi - functional programming interface + */ +export const MemberApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = MemberApiAxiosParamCreator(configuration) + return { + /** + * + * @param {Array} cust_ids ?cust_ids=2,3,4 + * @param {boolean} [include_licenses] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMember(cust_ids: Array, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMember(cust_ids, include_licenses, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMember']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} award_id + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberAwardInstances(award_id: number, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstances(award_id, cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwardInstances']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstancesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwardInstancesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberAwards(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwards(cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwards']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberAwardsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwardsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road + * @param {IracingChartType} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberChartData(category_id: number, chart_type: IracingChartType, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartData(category_id, chart_type, cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberChartData']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartDataDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberChartDataDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberInfo(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfo(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberInfo']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberInfoDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfoDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberInfoDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberParticipationCredits(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCredits(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberParticipationCredits']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCreditsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberParticipationCreditsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @summary Gets a requested user\'s profile. + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberProfile(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberProfile(cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberProfile']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getMemberProfileDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberProfileDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberProfileDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * MemberApi - factory interface + */ +export const MemberApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = MemberApiFp(configuration) + return { + /** + * + * @param {MemberApiGetMemberRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMember(requestParameters: MemberApiGetMemberRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMember(requestParameters.cust_ids, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {MemberApiGetMemberAwardInstancesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardInstances(requestParameters: MemberApiGetMemberAwardInstancesRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwardInstances(requestParameters.award_id, requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwardInstancesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {MemberApiGetMemberAwardsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwards(requestParameters: MemberApiGetMemberAwardsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwards(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberAwardsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwardsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {MemberApiGetMemberChartDataRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberChartData(requestParameters: MemberApiGetMemberChartDataRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberChartData(requestParameters.category_id, requestParameters.chart_type, requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberChartDataDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getMemberDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberInfo(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberInfo(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberInfoDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberInfoDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberParticipationCredits(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberParticipationCredits(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberParticipationCreditsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary Gets a requested user\'s profile. + * @param {MemberApiGetMemberProfileRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberProfile(requestParameters: MemberApiGetMemberProfileRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberProfile(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getMemberProfileDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberProfileDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getMember operation in MemberApi. + */ +export interface MemberApiGetMemberRequest { + /** + * ?cust_ids=2,3,4 + */ + readonly cust_ids: Array + + readonly include_licenses?: boolean +} + +/** + * Request parameters for getMemberAwardInstances operation in MemberApi. + */ +export interface MemberApiGetMemberAwardInstancesRequest { + readonly award_id: number + + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * Request parameters for getMemberAwards operation in MemberApi. + */ +export interface MemberApiGetMemberAwardsRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * Request parameters for getMemberChartData operation in MemberApi. + */ +export interface MemberApiGetMemberChartDataRequest { + /** + * 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road + */ + readonly category_id: number + + /** + * 1 - iRating; 2 - TT Rating; 3 - License/SR + */ + readonly chart_type: IracingChartType + + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * Request parameters for getMemberProfile operation in MemberApi. + */ +export interface MemberApiGetMemberProfileRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * MemberApi - object-oriented interface + */ +export class MemberApi extends BaseAPI { + /** + * + * @param {MemberApiGetMemberRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMember(requestParameters: MemberApiGetMemberRequest, options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMember(requestParameters.cust_ids, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {MemberApiGetMemberAwardInstancesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberAwardInstances(requestParameters: MemberApiGetMemberAwardInstancesRequest, options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberAwardInstances(requestParameters.award_id, requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberAwardInstancesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {MemberApiGetMemberAwardsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberAwards(requestParameters: MemberApiGetMemberAwardsRequest = {}, options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberAwards(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberAwardsDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberAwardsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {MemberApiGetMemberChartDataRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberChartData(requestParameters: MemberApiGetMemberChartDataRequest, options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberChartData(requestParameters.category_id, requestParameters.chart_type, requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberChartDataDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberChartDataDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberGetDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberInfo(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberInfo(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberInfoDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberInfoDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberParticipationCredits(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberParticipationCredits(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberParticipationCreditsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @summary Gets a requested user\'s profile. + * @param {MemberApiGetMemberProfileRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberProfile(requestParameters: MemberApiGetMemberProfileRequest = {}, options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberProfile(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getMemberProfileDocs(options?: RawAxiosRequestConfig) { + return MemberApiFp(this.configuration).getMemberProfileDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * ResultsApi - axios parameter creator + */ +export const ResultsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {number} subsession_id + * @param {boolean} [include_licenses] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResults: async (subsession_id: number, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'subsession_id' is not null or undefined + assertParamExists('getResults', 'subsession_id', subsession_id) + const localVarPath = `/data/results/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (subsession_id !== undefined) { + localVarQueryParameter['subsession_id'] = subsession_id; + } + + if (include_licenses !== undefined) { + localVarQueryParameter['include_licenses'] = include_licenses; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} subsession_id + * @param {number} simsession_number The main event is 0; the preceding event is -1, and so on. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsEventLog: async (subsession_id: number, simsession_number: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'subsession_id' is not null or undefined + assertParamExists('getResultsEventLog', 'subsession_id', subsession_id) + // verify required parameter 'simsession_number' is not null or undefined + assertParamExists('getResultsEventLog', 'simsession_number', simsession_number) + const localVarPath = `/data/results/event_log`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (subsession_id !== undefined) { + localVarQueryParameter['subsession_id'] = subsession_id; + } + + if (simsession_number !== undefined) { + localVarQueryParameter['simsession_number'] = simsession_number; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsEventLogDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/event_log`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} subsession_id + * @param {number} simsession_number The main event is 0; the preceding event is -1, and so on. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapChartData: async (subsession_id: number, simsession_number: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'subsession_id' is not null or undefined + assertParamExists('getResultsLapChartData', 'subsession_id', subsession_id) + // verify required parameter 'simsession_number' is not null or undefined + assertParamExists('getResultsLapChartData', 'simsession_number', simsession_number) + const localVarPath = `/data/results/lap_chart_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (subsession_id !== undefined) { + localVarQueryParameter['subsession_id'] = subsession_id; + } + + if (simsession_number !== undefined) { + localVarQueryParameter['simsession_number'] = simsession_number; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_chart_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} subsession_id + * @param {number} simsession_number The main event is 0; the preceding event is -1, and so on. + * @param {number} [cust_id] Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team\'s drivers will be included. + * @param {number} [team_id] Required if the subsession was a team event. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapData: async (subsession_id: number, simsession_number: number, cust_id?: number, team_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'subsession_id' is not null or undefined + assertParamExists('getResultsLapData', 'subsession_id', subsession_id) + // verify required parameter 'simsession_number' is not null or undefined + assertParamExists('getResultsLapData', 'simsession_number', simsession_number) + const localVarPath = `/data/results/lap_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (subsession_id !== undefined) { + localVarQueryParameter['subsession_id'] = subsession_id; + } + + if (simsession_number !== undefined) { + localVarQueryParameter['simsession_number'] = simsession_number; + } + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (team_id !== undefined) { + localVarQueryParameter['team_id'] = team_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_data`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {string} [start_range_begin] Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [start_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. + * @param {string} [finish_range_begin] Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [finish_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. + * @param {number} [cust_id] The participant\'s customer ID. Ignored if team_id is supplied. + * @param {number} [team_id] The team ID to search for. Takes priority over cust_id if both are supplied. + * @param {number} [host_cust_id] The host\'s customer ID. + * @param {string} [session_name] Part or all of the session\'s name. + * @param {number} [league_id] Include only results for the league with this ID. + * @param {number} [league_season_id] Include only results for the league season with this ID. + * @param {number} [car_id] One of the cars used by the session. + * @param {number} [track_id] The ID of the track used by the session. + * @param {Array} [category_ids] Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchHosted: async (start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, host_cust_id?: number, session_name?: string, league_id?: number, league_season_id?: number, car_id?: number, track_id?: number, category_ids?: Array, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/results/search_hosted`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (start_range_begin !== undefined) { + localVarQueryParameter['start_range_begin'] = (start_range_begin as any instanceof Date) ? + (start_range_begin as any).toISOString() : + start_range_begin; + } + + if (start_range_end !== undefined) { + localVarQueryParameter['start_range_end'] = (start_range_end as any instanceof Date) ? + (start_range_end as any).toISOString() : + start_range_end; + } + + if (finish_range_begin !== undefined) { + localVarQueryParameter['finish_range_begin'] = (finish_range_begin as any instanceof Date) ? + (finish_range_begin as any).toISOString() : + finish_range_begin; + } + + if (finish_range_end !== undefined) { + localVarQueryParameter['finish_range_end'] = (finish_range_end as any instanceof Date) ? + (finish_range_end as any).toISOString() : + finish_range_end; + } + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (team_id !== undefined) { + localVarQueryParameter['team_id'] = team_id; + } + + if (host_cust_id !== undefined) { + localVarQueryParameter['host_cust_id'] = host_cust_id; + } + + if (session_name !== undefined) { + localVarQueryParameter['session_name'] = session_name; + } + + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (league_season_id !== undefined) { + localVarQueryParameter['league_season_id'] = league_season_id; + } + + if (car_id !== undefined) { + localVarQueryParameter['car_id'] = car_id; + } + + if (track_id !== undefined) { + localVarQueryParameter['track_id'] = track_id; + } + + if (category_ids) { + localVarQueryParameter['category_ids'] = category_ids; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_hosted`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [season_year] Required when using season_quarter. + * @param {number} [season_quarter] Required when using season_year. + * @param {string} [start_range_begin] Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [start_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. + * @param {string} [finish_range_begin] Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [finish_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. + * @param {number} [cust_id] Include only sessions in which this customer participated. Ignored if team_id is supplied. + * @param {number} [team_id] Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. + * @param {number} [series_id] Include only sessions for series with this ID. + * @param {number} [race_week_num] Include only sessions with this race week number. + * @param {boolean} [official_only] If true, include only sessions earning championship points. Defaults to all. + * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {Array} [category_ids] License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchSeries: async (season_year?: number, season_quarter?: number, start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, series_id?: number, race_week_num?: number, official_only?: boolean, event_types?: Array, category_ids?: Array, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/results/search_series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } + + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; + } + + if (start_range_begin !== undefined) { + localVarQueryParameter['start_range_begin'] = (start_range_begin as any instanceof Date) ? + (start_range_begin as any).toISOString() : + start_range_begin; + } + + if (start_range_end !== undefined) { + localVarQueryParameter['start_range_end'] = (start_range_end as any instanceof Date) ? + (start_range_end as any).toISOString() : + start_range_end; + } + + if (finish_range_begin !== undefined) { + localVarQueryParameter['finish_range_begin'] = (finish_range_begin as any instanceof Date) ? + (finish_range_begin as any).toISOString() : + finish_range_begin; + } + + if (finish_range_end !== undefined) { + localVarQueryParameter['finish_range_end'] = (finish_range_end as any instanceof Date) ? + (finish_range_end as any).toISOString() : + finish_range_end; + } + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (team_id !== undefined) { + localVarQueryParameter['team_id'] = team_id; + } + + if (series_id !== undefined) { + localVarQueryParameter['series_id'] = series_id; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + if (official_only !== undefined) { + localVarQueryParameter['official_only'] = official_only; + } + + if (event_types) { + localVarQueryParameter['event_types'] = event_types; + } + + if (category_ids) { + localVarQueryParameter['category_ids'] = category_ids; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {IracingEventType} [event_type] Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSeasonResults: async (season_id: number, event_type?: IracingEventType, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getResultsSeasonResults', 'season_id', season_id) + const localVarPath = `/data/results/season_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (event_type !== undefined) { + localVarQueryParameter['event_type'] = event_type; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/season_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * ResultsApi - functional programming interface + */ +export const ResultsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = ResultsApiAxiosParamCreator(configuration) + return { + /** + * + * @param {number} subsession_id + * @param {boolean} [include_licenses] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResults(subsession_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResults(subsession_id, include_licenses, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResults']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} subsession_id + * @param {number} simsession_number The main event is 0; the preceding event is -1, and so on. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsEventLog(subsession_id: number, simsession_number: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsEventLog(subsession_id, simsession_number, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsEventLog']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsEventLogDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsEventLogDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsEventLogDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} subsession_id + * @param {number} simsession_number The main event is 0; the preceding event is -1, and so on. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsLapChartData(subsession_id: number, simsession_number: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapChartData(subsession_id, simsession_number, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapChartData']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapChartDataDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapChartDataDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} subsession_id + * @param {number} simsession_number The main event is 0; the preceding event is -1, and so on. + * @param {number} [cust_id] Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team\'s drivers will be included. + * @param {number} [team_id] Required if the subsession was a team event. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsLapData(subsession_id: number, simsession_number: number, cust_id?: number, team_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapData(subsession_id, simsession_number, cust_id, team_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapData']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsLapDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapDataDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapDataDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {string} [start_range_begin] Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [start_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. + * @param {string} [finish_range_begin] Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [finish_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. + * @param {number} [cust_id] The participant\'s customer ID. Ignored if team_id is supplied. + * @param {number} [team_id] The team ID to search for. Takes priority over cust_id if both are supplied. + * @param {number} [host_cust_id] The host\'s customer ID. + * @param {string} [session_name] Part or all of the session\'s name. + * @param {number} [league_id] Include only results for the league with this ID. + * @param {number} [league_season_id] Include only results for the league season with this ID. + * @param {number} [car_id] One of the cars used by the session. + * @param {number} [track_id] The ID of the track used by the session. + * @param {Array} [category_ids] Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSearchHosted(start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, host_cust_id?: number, session_name?: string, league_id?: number, league_season_id?: number, car_id?: number, track_id?: number, category_ids?: Array, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchHosted(start_range_begin, start_range_end, finish_range_begin, finish_range_end, cust_id, team_id, host_cust_id, session_name, league_id, league_season_id, car_id, track_id, category_ids, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchHosted']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchHostedDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchHostedDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [season_year] Required when using season_quarter. + * @param {number} [season_quarter] Required when using season_year. + * @param {string} [start_range_begin] Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [start_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. + * @param {string} [finish_range_begin] Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + * @param {string} [finish_range_end] ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. + * @param {number} [cust_id] Include only sessions in which this customer participated. Ignored if team_id is supplied. + * @param {number} [team_id] Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. + * @param {number} [series_id] Include only sessions for series with this ID. + * @param {number} [race_week_num] Include only sessions with this race week number. + * @param {boolean} [official_only] If true, include only sessions earning championship points. Defaults to all. + * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {Array} [category_ids] License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSearchSeries(season_year?: number, season_quarter?: number, start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, series_id?: number, race_week_num?: number, official_only?: boolean, event_types?: Array, category_ids?: Array, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchSeries(season_year, season_quarter, start_range_begin, start_range_end, finish_range_begin, finish_range_end, cust_id, team_id, series_id, race_week_num, official_only, event_types, category_ids, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchSeries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchSeriesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchSeriesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {IracingEventType} [event_type] Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSeasonResults(season_id: number, event_type?: IracingEventType, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSeasonResults(season_id, event_type, race_week_num, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSeasonResults']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSeasonResultsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * ResultsApi - factory interface + */ +export const ResultsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = ResultsApiFp(configuration) + return { + /** + * + * @param {ResultsApiGetResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResults(requestParameters: ResultsApiGetResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResults(requestParameters.subsession_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getResultsDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {ResultsApiGetResultsEventLogRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsEventLog(requestParameters: ResultsApiGetResultsEventLogRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsEventLog(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsEventLogDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsEventLogDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {ResultsApiGetResultsLapChartDataRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapChartData(requestParameters: ResultsApiGetResultsLapChartDataRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapChartData(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapChartDataDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {ResultsApiGetResultsLapDataRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapData(requestParameters: ResultsApiGetResultsLapDataRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapData(requestParameters.subsession_id, requestParameters.simsession_number, requestParameters.cust_id, requestParameters.team_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsLapDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapDataDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {ResultsApiGetResultsSearchHostedRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchHosted(requestParameters: ResultsApiGetResultsSearchHostedRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchHosted(requestParameters.start_range_begin, requestParameters.start_range_end, requestParameters.finish_range_begin, requestParameters.finish_range_end, requestParameters.cust_id, requestParameters.team_id, requestParameters.host_cust_id, requestParameters.session_name, requestParameters.league_id, requestParameters.league_season_id, requestParameters.car_id, requestParameters.track_id, requestParameters.category_ids, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchHostedDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {ResultsApiGetResultsSearchSeriesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchSeries(requestParameters: ResultsApiGetResultsSearchSeriesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchSeries(requestParameters.season_year, requestParameters.season_quarter, requestParameters.start_range_begin, requestParameters.start_range_end, requestParameters.finish_range_begin, requestParameters.finish_range_end, requestParameters.cust_id, requestParameters.team_id, requestParameters.series_id, requestParameters.race_week_num, requestParameters.official_only, requestParameters.event_types, requestParameters.category_ids, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchSeriesDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {ResultsApiGetResultsSeasonResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSeasonResults(requestParameters: ResultsApiGetResultsSeasonResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSeasonResults(requestParameters.season_id, requestParameters.event_type, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSeasonResultsDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getResults operation in ResultsApi. + */ +export interface ResultsApiGetResultsRequest { + readonly subsession_id: number + + readonly include_licenses?: boolean +} + +/** + * Request parameters for getResultsEventLog operation in ResultsApi. + */ +export interface ResultsApiGetResultsEventLogRequest { + readonly subsession_id: number + + /** + * The main event is 0; the preceding event is -1, and so on. + */ + readonly simsession_number: number +} + +/** + * Request parameters for getResultsLapChartData operation in ResultsApi. + */ +export interface ResultsApiGetResultsLapChartDataRequest { + readonly subsession_id: number + + /** + * The main event is 0; the preceding event is -1, and so on. + */ + readonly simsession_number: number +} + +/** + * Request parameters for getResultsLapData operation in ResultsApi. + */ +export interface ResultsApiGetResultsLapDataRequest { + readonly subsession_id: number + + /** + * The main event is 0; the preceding event is -1, and so on. + */ + readonly simsession_number: number + + /** + * Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team\'s drivers will be included. + */ + readonly cust_id?: number + + /** + * Required if the subsession was a team event. + */ + readonly team_id?: number +} + +/** + * Request parameters for getResultsSearchHosted operation in ResultsApi. + */ +export interface ResultsApiGetResultsSearchHostedRequest { + /** + * Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + */ + readonly start_range_begin?: string + + /** + * ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. + */ + readonly start_range_end?: string + + /** + * Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + */ + readonly finish_range_begin?: string + + /** + * ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. + */ + readonly finish_range_end?: string + + /** + * The participant\'s customer ID. Ignored if team_id is supplied. + */ + readonly cust_id?: number + + /** + * The team ID to search for. Takes priority over cust_id if both are supplied. + */ + readonly team_id?: number + + /** + * The host\'s customer ID. + */ + readonly host_cust_id?: number + + /** + * Part or all of the session\'s name. + */ + readonly session_name?: string + + /** + * Include only results for the league with this ID. + */ + readonly league_id?: number + + /** + * Include only results for the league season with this ID. + */ + readonly league_season_id?: number + + /** + * One of the cars used by the session. + */ + readonly car_id?: number + + /** + * The ID of the track used by the session. + */ + readonly track_id?: number + + /** + * Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + */ + readonly category_ids?: Array +} + +/** + * Request parameters for getResultsSearchSeries operation in ResultsApi. + */ +export interface ResultsApiGetResultsSearchSeriesRequest { + /** + * Required when using season_quarter. + */ + readonly season_year?: number + + /** + * Required when using season_year. + */ + readonly season_quarter?: number + + /** + * Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + */ + readonly start_range_begin?: string + + /** + * ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. + */ + readonly start_range_end?: string + + /** + * Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". + */ + readonly finish_range_begin?: string + + /** + * ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. + */ + readonly finish_range_end?: string + + /** + * Include only sessions in which this customer participated. Ignored if team_id is supplied. + */ + readonly cust_id?: number + + /** + * Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. + */ + readonly team_id?: number + + /** + * Include only sessions for series with this ID. + */ + readonly series_id?: number + + /** + * Include only sessions with this race week number. + */ + readonly race_week_num?: number + + /** + * If true, include only sessions earning championship points. Defaults to all. + */ + readonly official_only?: boolean + + /** + * Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + */ + readonly event_types?: Array + + /** + * License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + */ + readonly category_ids?: Array +} + +/** + * Request parameters for getResultsSeasonResults operation in ResultsApi. + */ +export interface ResultsApiGetResultsSeasonResultsRequest { + readonly season_id: number + + /** + * Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race + */ + readonly event_type?: IracingEventType + + /** + * The first race week of a season is 0. + */ + readonly race_week_num?: number +} + +/** + * ResultsApi - object-oriented interface + */ +export class ResultsApi extends BaseAPI { + /** + * + * @param {ResultsApiGetResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResults(requestParameters: ResultsApiGetResultsRequest, options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResults(requestParameters.subsession_id, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {ResultsApiGetResultsEventLogRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsEventLog(requestParameters: ResultsApiGetResultsEventLogRequest, options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsEventLog(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsEventLogDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsEventLogDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsGetDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {ResultsApiGetResultsLapChartDataRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsLapChartData(requestParameters: ResultsApiGetResultsLapChartDataRequest, options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsLapChartData(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsLapChartDataDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsLapChartDataDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {ResultsApiGetResultsLapDataRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsLapData(requestParameters: ResultsApiGetResultsLapDataRequest, options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsLapData(requestParameters.subsession_id, requestParameters.simsession_number, requestParameters.cust_id, requestParameters.team_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsLapDataDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsLapDataDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {ResultsApiGetResultsSearchHostedRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSearchHosted(requestParameters: ResultsApiGetResultsSearchHostedRequest = {}, options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsSearchHosted(requestParameters.start_range_begin, requestParameters.start_range_end, requestParameters.finish_range_begin, requestParameters.finish_range_end, requestParameters.cust_id, requestParameters.team_id, requestParameters.host_cust_id, requestParameters.session_name, requestParameters.league_id, requestParameters.league_season_id, requestParameters.car_id, requestParameters.track_id, requestParameters.category_ids, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSearchHostedDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsSearchHostedDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {ResultsApiGetResultsSearchSeriesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSearchSeries(requestParameters: ResultsApiGetResultsSearchSeriesRequest = {}, options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsSearchSeries(requestParameters.season_year, requestParameters.season_quarter, requestParameters.start_range_begin, requestParameters.start_range_end, requestParameters.finish_range_begin, requestParameters.finish_range_end, requestParameters.cust_id, requestParameters.team_id, requestParameters.series_id, requestParameters.race_week_num, requestParameters.official_only, requestParameters.event_types, requestParameters.category_ids, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsSearchSeriesDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {ResultsApiGetResultsSeasonResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSeasonResults(requestParameters: ResultsApiGetResultsSeasonResultsRequest, options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsSeasonResults(requestParameters.season_id, requestParameters.event_type, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig) { + return ResultsApiFp(this.configuration).getResultsSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * SeasonApi - axios parameter creator + */ +export const SeasonApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsDetailGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_year + * @param {number} season_quarter + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonList: async (season_year: number, season_quarter: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_year' is not null or undefined + assertParamExists('getSeasonList', 'season_year', season_year) + // verify required parameter 'season_quarter' is not null or undefined + assertParamExists('getSeasonList', 'season_quarter', season_quarter) + const localVarPath = `/data/season/list`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } + + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/list`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {string} [from] ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. + * @param {boolean} [include_end_after_from] Include sessions which start before \'from\' but end after. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonRaceGuide: async (from?: string, include_end_after_from?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/season/race_guide`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (from !== undefined) { + localVarQueryParameter['from'] = (from as any instanceof Date) ? + (from as any).toISOString() : + from; + } + + if (include_end_after_from !== undefined) { + localVarQueryParameter['include_end_after_from'] = include_end_after_from; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/race_guide`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * SeasonApi - functional programming interface + */ +export const SeasonApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = SeasonApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsDetailGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.dataDocSeasonSpectatorSubsessionidsDetailGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.dataDocSeasonSpectatorSubsessionidsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_year + * @param {number} season_quarter + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonList(season_year: number, season_quarter: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonList(season_year, season_quarter, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonList']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonListDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonListDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {string} [from] ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. + * @param {boolean} [include_end_after_from] Include sessions which start before \'from\' but end after. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonRaceGuide(from?: string, include_end_after_from?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonRaceGuide(from, include_end_after_from, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonRaceGuide']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonRaceGuideDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonRaceGuideDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * SeasonApi - factory interface + */ +export const SeasonApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = SeasonApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getSeasonDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {SeasonApiGetSeasonListRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonList(requestParameters: SeasonApiGetSeasonListRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonList(requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonListDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {SeasonApiGetSeasonRaceGuideRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonRaceGuide(requestParameters: SeasonApiGetSeasonRaceGuideRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonRaceGuide(requestParameters.from, requestParameters.include_end_after_from, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonRaceGuideDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getSeasonList operation in SeasonApi. + */ +export interface SeasonApiGetSeasonListRequest { + readonly season_year: number + + readonly season_quarter: number +} + +/** + * Request parameters for getSeasonRaceGuide operation in SeasonApi. + */ +export interface SeasonApiGetSeasonRaceGuideRequest { + /** + * ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. + */ + readonly from?: string + + /** + * Include sessions which start before \'from\' but end after. + */ + readonly include_end_after_from?: boolean +} + +/** + * SeasonApi - object-oriented interface + */ +export class SeasonApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {SeasonApiGetSeasonListRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonList(requestParameters: SeasonApiGetSeasonListRequest, options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonList(requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonListDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {SeasonApiGetSeasonRaceGuideRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonRaceGuide(requestParameters: SeasonApiGetSeasonRaceGuideRequest = {}, options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonRaceGuide(requestParameters.from, requestParameters.include_end_after_from, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * SeriesApi - axios parameter creator + */ +export const SeriesApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesPastSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/past_seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonListGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_list`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonScheduleGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_schedule`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesStatsSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/stats_series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeries: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesAssets: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} series_id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesPastSeasons: async (series_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'series_id' is not null or undefined + assertParamExists('getSeriesPastSeasons', 'series_id', series_id) + const localVarPath = `/data/series/past_seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (series_id !== undefined) { + localVarQueryParameter['series_id'] = series_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {boolean} [include_series] + * @param {number} [season_year] + * @param {number} [season_quarter] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesSeasonList: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/season_list`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (include_series !== undefined) { + localVarQueryParameter['include_series'] = include_series; + } + + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } + + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesSeasonSchedule: async (season_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getSeriesSeasonSchedule', 'season_id', season_id) + const localVarPath = `/data/series/season_schedule`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {boolean} [include_series] + * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesSeasons: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/seasons`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (include_series !== undefined) { + localVarQueryParameter['include_series'] = include_series; + } + + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } + + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesStatsSeries: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/stats_series`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * SeriesApi - functional programming interface + */ +export const SeriesApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = SeriesApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesAssetsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesAssetsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGetGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesGetGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesPastSeasonsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesPastSeasonsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonListGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesSeasonListGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonScheduleGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesSeasonScheduleGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesSeasonsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesStatsSeriesGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesStatsSeriesGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeries(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeriesAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssets(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesAssets']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} series_id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeriesPastSeasons(series_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasons(series_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesPastSeasons']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {boolean} [include_series] + * @param {number} [season_year] + * @param {number} [season_quarter] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeriesSeasonList(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonList(include_series, season_year, season_quarter, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonList']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeriesSeasonSchedule(season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonSchedule(season_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonSchedule']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {boolean} [include_series] + * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeriesSeasons(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasons(include_series, season_year, season_quarter, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasons']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeriesStatsSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeries(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesStatsSeries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * SeriesApi - factory interface + */ +export const SeriesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = SeriesApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesAssetsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocSeriesGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesGetGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesGetGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesPastSeasonsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesSeasonListGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesSeasonScheduleGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesSeasonsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocSeriesStatsSeriesGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeries(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeries(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesAssets(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesAssets(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeriesStatsSeries(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesStatsSeries(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getSeriesPastSeasons operation in SeriesApi. + */ +export interface SeriesApiGetSeriesPastSeasonsRequest { + readonly series_id: number +} + +/** + * Request parameters for getSeriesSeasonList operation in SeriesApi. + */ +export interface SeriesApiGetSeriesSeasonListRequest { + readonly include_series?: boolean + + readonly season_year?: number + + readonly season_quarter?: number +} + +/** + * Request parameters for getSeriesSeasonSchedule operation in SeriesApi. + */ +export interface SeriesApiGetSeriesSeasonScheduleRequest { + readonly season_id: number +} + +/** + * Request parameters for getSeriesSeasons operation in SeriesApi. + */ +export interface SeriesApiGetSeriesSeasonsRequest { + readonly include_series?: boolean + + /** + * To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + */ + readonly season_year?: number + + /** + * To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + */ + readonly season_quarter?: number +} + +/** + * SeriesApi - object-oriented interface + */ +export class SeriesApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesAssetsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesGetGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesGetGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesPastSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesSeasonListGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesSeasonScheduleGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).dataDocSeriesStatsSeriesGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeries(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeries(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesAssets(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesAssets(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesStatsSeries(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesStatsSeries(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * StatsApi - axios parameter creator + */ +export const StatsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberBestsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_bests`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberCareerGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_career`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberDivisionGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_division`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecapGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recap`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecentRacesGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recent_races`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberSummaryGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_summary`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberYearlyGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_yearly`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonDriverStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_driver_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonQualifyResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_qualify_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonSupersessionStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_supersession_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTeamStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_team_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsWorldRecordsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/world_records`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberBests: async (cust_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_bests`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (car_id !== undefined) { + localVarQueryParameter['car_id'] = car_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberCareer: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_career`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberDivision: async (season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsMemberDivision', 'season_id', season_id) + // verify required parameter 'event_type' is not null or undefined + assertParamExists('getStatsMemberDivision', 'event_type', event_type) + const localVarPath = `/data/stats/member_division`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (event_type !== undefined) { + localVarQueryParameter['event_type'] = event_type; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. + * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberRecap: async (cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_recap`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (year !== undefined) { + localVarQueryParameter['year'] = year; + } + + if (season !== undefined) { + localVarQueryParameter['season'] = season; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberRecentRaces: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_recent_races`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberSummary: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_summary`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberYearly: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_yearly`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonDriverStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonDriverStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonDriverStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_driver_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} race_week_num The first race week of a season is 0. + * @param {IracingDivision} [division] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonQualifyResults: async (season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'car_class_id', car_class_id) + // verify required parameter 'race_week_num' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'race_week_num', race_week_num) + const localVarPath = `/data/stats/season_qualify_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonSupersessionStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonSupersessionStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonSupersessionStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_supersession_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonTeamStandings: async (season_id: number, car_class_id: number, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonTeamStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonTeamStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_team_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} race_week_num The first race week of a season is 0. + * @param {IracingDivision} [division] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonTimeTrialResults: async (season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonTimeTrialResults', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonTimeTrialResults', 'car_class_id', car_class_id) + // verify required parameter 'race_week_num' is not null or undefined + assertParamExists('getStatsSeasonTimeTrialResults', 'race_week_num', race_week_num) + const localVarPath = `/data/stats/season_time_trial_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonTimeTrialStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonTimeTrialStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonTimeTrialStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_time_trial_standings`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} car_id + * @param {number} track_id + * @param {number} [season_year] Limit best times to a given year. + * @param {number} [season_quarter] Limit best times to a given quarter; only applicable when year is used. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsWorldRecords: async (car_id: number, track_id: number, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'car_id' is not null or undefined + assertParamExists('getStatsWorldRecords', 'car_id', car_id) + // verify required parameter 'track_id' is not null or undefined + assertParamExists('getStatsWorldRecords', 'track_id', track_id) + const localVarPath = `/data/stats/world_records`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (car_id !== undefined) { + localVarQueryParameter['car_id'] = car_id; + } + + if (track_id !== undefined) { + localVarQueryParameter['track_id'] = track_id; + } + + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } + + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * StatsApi - functional programming interface + */ +export const StatsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = StatsApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberBestsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberBestsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberCareerGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberCareerGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberDivisionGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberDivisionGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecapGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberRecapGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecentRacesGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberRecentRacesGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberSummaryGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberSummaryGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberYearlyGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberYearlyGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonDriverStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonDriverStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonQualifyResultsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonQualifyResultsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonSupersessionStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonSupersessionStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTeamStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonTeamStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtResultsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonTtResultsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtStandingsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonTtStandingsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsWorldRecordsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsWorldRecordsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsMemberBests(cust_id?: number, car_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberBests(cust_id, car_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberBests']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsMemberCareer(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberCareer(cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberCareer']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsMemberDivision(season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberDivision(season_id, event_type, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberDivision']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. + * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsMemberRecap(cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecap(cust_id, year, season, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecap']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsMemberRecentRaces(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecentRaces(cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecentRaces']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsMemberSummary(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberSummary(cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberSummary']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsMemberYearly(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberYearly(cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberYearly']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsSeasonDriverStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonDriverStandings(season_id, car_class_id, division, race_week_num, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonDriverStandings']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} race_week_num The first race week of a season is 0. + * @param {IracingDivision} [division] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsSeasonQualifyResults(season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonQualifyResults(season_id, car_class_id, race_week_num, division, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonQualifyResults']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsSeasonSupersessionStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandings(season_id, car_class_id, division, race_week_num, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonSupersessionStandings']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsSeasonTeamStandings(season_id: number, car_class_id: number, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTeamStandings(season_id, car_class_id, race_week_num, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTeamStandings']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} race_week_num The first race week of a season is 0. + * @param {IracingDivision} [division] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsSeasonTimeTrialResults(season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTimeTrialResults(season_id, car_class_id, race_week_num, division, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTimeTrialResults']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsSeasonTimeTrialStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTimeTrialStandings(season_id, car_class_id, division, race_week_num, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTimeTrialStandings']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} car_id + * @param {number} track_id + * @param {number} [season_year] Limit best times to a given year. + * @param {number} [season_quarter] Limit best times to a given quarter; only applicable when year is used. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsWorldRecords(car_id: number, track_id: number, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsWorldRecords(car_id, track_id, season_year, season_quarter, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsWorldRecords']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * StatsApi - factory interface + */ +export const StatsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = StatsApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocStatsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberBestsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberCareerGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberDivisionGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberRecapGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberRecentRacesGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberSummaryGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsMemberYearlyGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonTtResultsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsSeasonTtStandingsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocStatsWorldRecordsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberBests(requestParameters: StatsApiGetStatsMemberBestsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberCareer(requestParameters: StatsApiGetStatsMemberCareerRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberDivision(requestParameters: StatsApiGetStatsMemberDivisionRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberRecap(requestParameters: StatsApiGetStatsMemberRecapRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberRecentRaces(requestParameters: StatsApiGetStatsMemberRecentRacesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberSummary(requestParameters: StatsApiGetStatsMemberSummaryRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsMemberYearly(requestParameters: StatsApiGetStatsMemberYearlyRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonDriverStandings(requestParameters: StatsApiGetStatsSeasonDriverStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonQualifyResults(requestParameters: StatsApiGetStatsSeasonQualifyResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonSupersessionStandings(requestParameters: StatsApiGetStatsSeasonSupersessionStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonTeamStandings(requestParameters: StatsApiGetStatsSeasonTeamStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsSeasonTimeTrialResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonTimeTrialResults(requestParameters: StatsApiGetStatsSeasonTimeTrialResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTimeTrialResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsSeasonTimeTrialStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsSeasonTimeTrialStandings(requestParameters: StatsApiGetStatsSeasonTimeTrialStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTimeTrialStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {StatsApiGetStatsWorldRecordsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsWorldRecords(requestParameters: StatsApiGetStatsWorldRecordsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsWorldRecords(requestParameters.car_id, requestParameters.track_id, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getStatsMemberBests operation in StatsApi. + */ +export interface StatsApiGetStatsMemberBestsRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number + + /** + * First call should exclude car_id; use cars_driven list in return for subsequent calls. + */ + readonly car_id?: number +} + +/** + * Request parameters for getStatsMemberCareer operation in StatsApi. + */ +export interface StatsApiGetStatsMemberCareerRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * Request parameters for getStatsMemberDivision operation in StatsApi. + */ +export interface StatsApiGetStatsMemberDivisionRequest { + readonly season_id: number + + /** + * The event type code for the division type: 4 - Time Trial; 5 - Race + */ + readonly event_type: GetStatsMemberDivisionEventTypeEnum +} + +/** + * Request parameters for getStatsMemberRecap operation in StatsApi. + */ +export interface StatsApiGetStatsMemberRecapRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number + + /** + * Season year; if not supplied the current calendar year (UTC) is used. + */ + readonly year?: GetStatsMemberRecapYearEnum + + /** + * Season (quarter) within the year; if not supplied the recap will be for the entire year. + */ + readonly season?: number +} + +/** + * Request parameters for getStatsMemberRecentRaces operation in StatsApi. + */ +export interface StatsApiGetStatsMemberRecentRacesRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * Request parameters for getStatsMemberSummary operation in StatsApi. + */ +export interface StatsApiGetStatsMemberSummaryRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * Request parameters for getStatsMemberYearly operation in StatsApi. + */ +export interface StatsApiGetStatsMemberYearlyRequest { + /** + * Defaults to the authenticated member. + */ + readonly cust_id?: number +} + +/** + * Request parameters for getStatsSeasonDriverStandings operation in StatsApi. + */ +export interface StatsApiGetStatsSeasonDriverStandingsRequest { + readonly season_id: number + + readonly car_class_id: number + + readonly division?: IracingDivision + + /** + * The first race week of a season is 0. + */ + readonly race_week_num?: number +} + +/** + * Request parameters for getStatsSeasonQualifyResults operation in StatsApi. + */ +export interface StatsApiGetStatsSeasonQualifyResultsRequest { + readonly season_id: number + + readonly car_class_id: number + + /** + * The first race week of a season is 0. + */ + readonly race_week_num: number + + readonly division?: IracingDivision +} + +/** + * Request parameters for getStatsSeasonSupersessionStandings operation in StatsApi. + */ +export interface StatsApiGetStatsSeasonSupersessionStandingsRequest { + readonly season_id: number + + readonly car_class_id: number + + readonly division?: IracingDivision + + /** + * The first race week of a season is 0. + */ + readonly race_week_num?: number +} + +/** + * Request parameters for getStatsSeasonTeamStandings operation in StatsApi. + */ +export interface StatsApiGetStatsSeasonTeamStandingsRequest { + readonly season_id: number + + readonly car_class_id: number + + /** + * The first race week of a season is 0. + */ + readonly race_week_num?: number +} + +/** + * Request parameters for getStatsSeasonTimeTrialResults operation in StatsApi. + */ +export interface StatsApiGetStatsSeasonTimeTrialResultsRequest { + readonly season_id: number + + readonly car_class_id: number + + /** + * The first race week of a season is 0. + */ + readonly race_week_num: number + + readonly division?: IracingDivision +} + +/** + * Request parameters for getStatsSeasonTimeTrialStandings operation in StatsApi. + */ +export interface StatsApiGetStatsSeasonTimeTrialStandingsRequest { + readonly season_id: number + + readonly car_class_id: number + + readonly division?: IracingDivision + + /** + * The first race week of a season is 0. + */ + readonly race_week_num?: number +} + +/** + * Request parameters for getStatsWorldRecords operation in StatsApi. + */ +export interface StatsApiGetStatsWorldRecordsRequest { + readonly car_id: number + + readonly track_id: number + + /** + * Limit best times to a given year. + */ + readonly season_year?: number + + /** + * Limit best times to a given quarter; only applicable when year is used. + */ + readonly season_quarter?: number +} + +/** + * StatsApi - object-oriented interface + */ +export class StatsApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsMemberBestsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsMemberCareerGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsMemberDivisionGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsMemberRecapGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsMemberRecentRacesGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsMemberSummaryGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsMemberYearlyGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsSeasonTtResultsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsSeasonTtStandingsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).dataDocStatsWorldRecordsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsMemberBests(requestParameters: StatsApiGetStatsMemberBestsRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsMemberCareer(requestParameters: StatsApiGetStatsMemberCareerRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsMemberDivision(requestParameters: StatsApiGetStatsMemberDivisionRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsMemberRecap(requestParameters: StatsApiGetStatsMemberRecapRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsMemberRecentRaces(requestParameters: StatsApiGetStatsMemberRecentRacesRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsMemberSummary(requestParameters: StatsApiGetStatsMemberSummaryRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsMemberYearly(requestParameters: StatsApiGetStatsMemberYearlyRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsSeasonDriverStandings(requestParameters: StatsApiGetStatsSeasonDriverStandingsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsSeasonQualifyResults(requestParameters: StatsApiGetStatsSeasonQualifyResultsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsSeasonSupersessionStandings(requestParameters: StatsApiGetStatsSeasonSupersessionStandingsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsSeasonTeamStandings(requestParameters: StatsApiGetStatsSeasonTeamStandingsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsSeasonTimeTrialResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsSeasonTimeTrialResults(requestParameters: StatsApiGetStatsSeasonTimeTrialResultsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonTimeTrialResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsSeasonTimeTrialStandingsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsSeasonTimeTrialStandings(requestParameters: StatsApiGetStatsSeasonTimeTrialStandingsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonTimeTrialStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {StatsApiGetStatsWorldRecordsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsWorldRecords(requestParameters: StatsApiGetStatsWorldRecordsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsWorldRecords(requestParameters.car_id, requestParameters.track_id, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + } +} + +export const GetStatsMemberDivisionEventTypeEnum = { + NUMBER_4: 4, + NUMBER_5: 5 +} as const; +export type GetStatsMemberDivisionEventTypeEnum = typeof GetStatsMemberDivisionEventTypeEnum[keyof typeof GetStatsMemberDivisionEventTypeEnum]; +export const GetStatsMemberRecapYearEnum = { + NUMBER_1: 1, + NUMBER_2: 2, + NUMBER_3: 3, + NUMBER_4: 4 +} as const; +export type GetStatsMemberRecapYearEnum = typeof GetStatsMemberRecapYearEnum[keyof typeof GetStatsMemberRecapYearEnum]; + + +/** + * TeamApi - axios parameter creator + */ +export const TeamApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {number} team_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeam: async (team_id: number, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'team_id' is not null or undefined + assertParamExists('getTeam', 'team_id', team_id) + const localVarPath = `/data/team/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (team_id !== undefined) { + localVarQueryParameter['team_id'] = team_id; + } + + if (include_licenses !== undefined) { + localVarQueryParameter['include_licenses'] = include_licenses; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamMembership: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/team/membership`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/membership`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * TeamApi - functional programming interface + */ +export const TeamApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = TeamApiAxiosParamCreator(configuration) + return { + /** + * + * @param {number} team_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeam(team_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeam(team_id, include_licenses, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeam']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeamDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeamGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeamMembership(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamMembership(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamMembership']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTeamMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamMembershipDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamMembershipDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * TeamApi - factory interface + */ +export const TeamApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = TeamApiFp(configuration) + return { + /** + * + * @param {TeamApiGetTeamRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeam(requestParameters: TeamApiGetTeamRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeam(requestParameters.team_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getTeamDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeamGetDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamMembership(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeamMembership(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTeamMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeamMembershipDocs(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getTeam operation in TeamApi. + */ +export interface TeamApiGetTeamRequest { + readonly team_id: number + + /** + * For faster responses, only request when necessary. + */ + readonly include_licenses?: boolean +} + +/** + * TeamApi - object-oriented interface + */ +export class TeamApi extends BaseAPI { + /** + * + * @param {TeamApiGetTeamRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeam(requestParameters: TeamApiGetTeamRequest, options?: RawAxiosRequestConfig) { + return TeamApiFp(this.configuration).getTeam(requestParameters.team_id, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeamDocs(options?: RawAxiosRequestConfig) { + return TeamApiFp(this.configuration).getTeamDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeamGetDocs(options?: RawAxiosRequestConfig) { + return TeamApiFp(this.configuration).getTeamGetDocs(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeamMembership(options?: RawAxiosRequestConfig) { + return TeamApiFp(this.configuration).getTeamMembership(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTeamMembershipDocs(options?: RawAxiosRequestConfig) { + return TeamApiFp(this.configuration).getTeamMembershipDocs(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * TimeAttackApi - axios parameter creator + */ +export const TimeAttackApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackMemberSeasonResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack/member_season_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {number} ta_comp_season_id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTimeAttackMemberSeasonResults: async (ta_comp_season_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'ta_comp_season_id' is not null or undefined + assertParamExists('getTimeAttackMemberSeasonResults', 'ta_comp_season_id', ta_comp_season_id) + const localVarPath = `/data/time_attack/member_season_results`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (ta_comp_season_id !== undefined) { + localVarQueryParameter['ta_comp_season_id'] = ta_comp_season_id; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * TimeAttackApi - functional programming interface + */ +export const TimeAttackApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = TimeAttackApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTimeAttackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.dataDocTimeAttackGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackMemberSeasonResultsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.dataDocTimeAttackMemberSeasonResultsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} ta_comp_season_id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTimeAttackMemberSeasonResults(ta_comp_season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackMemberSeasonResults(ta_comp_season_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackMemberSeasonResults']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * TimeAttackApi - factory interface + */ +export const TimeAttackApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = TimeAttackApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocTimeAttackGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for getTimeAttackMemberSeasonResults operation in TimeAttackApi. + */ +export interface TimeAttackApiGetTimeAttackMemberSeasonResultsRequest { + readonly ta_comp_season_id: number +} + +/** + * TimeAttackApi - object-oriented interface + */ +export class TimeAttackApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTimeAttackGet(options?: RawAxiosRequestConfig) { + return TimeAttackApiFp(this.configuration).dataDocTimeAttackGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig) { + return TimeAttackApiFp(this.configuration).dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig) { + return TimeAttackApiFp(this.configuration).getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * TrackApi - axios parameter creator + */ +export const TrackApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTrack: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/track/get`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTrackAssets: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/track/assets`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * TrackApi - functional programming interface + */ +export const TrackApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = TrackApiAxiosParamCreator(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackAssetsGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TrackApi.dataDocTrackAssetsGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTrackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TrackApi.dataDocTrackGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async dataDocTrackGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGetGet(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TrackApi.dataDocTrackGetGet']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTrack(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrack(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrack']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getTrackAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackAssets(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackAssets']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * TrackApi - factory interface + */ +export const TrackApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = TrackApiFp(configuration) + return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocTrackAssetsGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.dataDocTrackGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + dataDocTrackGetGet(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.dataDocTrackGetGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTrack(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrack(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getTrackAssets(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrackAssets(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * TrackApi - object-oriented interface + */ +export class TrackApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTrackAssetsGet(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).dataDocTrackAssetsGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTrackGet(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).dataDocTrackGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public dataDocTrackGetGet(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).dataDocTrackGetGet(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTrack(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).getTrack(options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getTrackAssets(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).getTrackAssets(options).then((request) => request(this.axios, this.basePath)); + } +} + + + diff --git a/packages/api-client/src/client/base.ts b/packages/api-client/src/client/base.ts new file mode 100644 index 0000000..8826154 --- /dev/null +++ b/packages/api-client/src/client/base.ts @@ -0,0 +1,62 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import type { Configuration } from './configuration'; +// Some imports not used depending on template conditions +// @ts-ignore +import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; +import globalAxios from 'axios'; + +export const BASE_PATH = "https://members-ng.iracing.com".replace(/\/+$/, ""); + +export const COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", +}; + +export interface RequestArgs { + url: string; + options: RawAxiosRequestConfig; +} + +export class BaseAPI { + protected configuration: Configuration | undefined; + + constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePath ?? basePath; + } + } +}; + +export class RequiredError extends Error { + constructor(public field: string, msg?: string) { + super(msg); + this.name = "RequiredError" + } +} + +interface ServerMap { + [key: string]: { + url: string, + description: string, + }[]; +} + +export const operationServerMap: ServerMap = { +} diff --git a/packages/api-client/src/client/common.ts b/packages/api-client/src/client/common.ts new file mode 100644 index 0000000..b3e29b6 --- /dev/null +++ b/packages/api-client/src/client/common.ts @@ -0,0 +1,113 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import type { Configuration } from "./configuration"; +import type { RequestArgs } from "./base"; +import type { AxiosInstance, AxiosResponse } from 'axios'; +import { RequiredError } from "./base"; + +export const DUMMY_BASE_URL = 'https://example.com' + +/** + * + * @throws {RequiredError} + */ +export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) { + if (paramValue === null || paramValue === undefined) { + throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`); + } +} + +export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) { + if (configuration && configuration.apiKey) { + const localVarApiKeyValue = typeof configuration.apiKey === 'function' + ? await configuration.apiKey(keyParamName) + : await configuration.apiKey; + object[keyParamName] = localVarApiKeyValue; + } +} + +export const setBasicAuthToObject = function (object: any, configuration?: Configuration) { + if (configuration && (configuration.username || configuration.password)) { + object["auth"] = { username: configuration.username, password: configuration.password }; + } +} + +export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) { + if (configuration && configuration.accessToken) { + const accessToken = typeof configuration.accessToken === 'function' + ? await configuration.accessToken() + : await configuration.accessToken; + object["Authorization"] = "Bearer " + accessToken; + } +} + +export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) { + if (configuration && configuration.accessToken) { + const localVarAccessTokenValue = typeof configuration.accessToken === 'function' + ? await configuration.accessToken(name, scopes) + : await configuration.accessToken; + object["Authorization"] = "Bearer " + localVarAccessTokenValue; + } +} + + +function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ""): void { + if (parameter == null) return; + if (typeof parameter === "object") { + if (Array.isArray(parameter)) { + (parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key)); + } + else { + Object.keys(parameter).forEach(currentKey => + setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`) + ); + } + } + else { + if (urlSearchParams.has(key)) { + urlSearchParams.append(key, parameter); + } + else { + urlSearchParams.set(key, parameter); + } + } +} + +export const setSearchParams = function (url: URL, ...objects: any[]) { + const searchParams = new URLSearchParams(url.search); + setFlattenedQueryParams(searchParams, objects); + url.search = searchParams.toString(); +} + +export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) { + const nonString = typeof value !== 'string'; + const needsSerialization = nonString && configuration && configuration.isJsonMime + ? configuration.isJsonMime(requestOptions.headers['Content-Type']) + : nonString; + return needsSerialization + ? JSON.stringify(value !== undefined ? value : {}) + : (value || ""); +} + +export const toPathString = function (url: URL) { + return url.pathname + url.search + url.hash +} + +export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) { + return >(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs = {...axiosArgs.options, url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url}; + return axios.request(axiosRequestArgs); + }; +} diff --git a/packages/api-client/src/client/configuration.ts b/packages/api-client/src/client/configuration.ts new file mode 100644 index 0000000..8b733e8 --- /dev/null +++ b/packages/api-client/src/client/configuration.ts @@ -0,0 +1,121 @@ +/* tslint:disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +interface AWSv4Configuration { + options?: { + region?: string + service?: string + } + credentials?: { + accessKeyId?: string + secretAccessKey?: string, + sessionToken?: string + } +} + +export interface ConfigurationParameters { + apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); + username?: string; + password?: string; + accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); + awsv4?: AWSv4Configuration; + basePath?: string; + serverIndex?: number; + baseOptions?: any; + formDataCtor?: new () => any; +} + +export class Configuration { + /** + * parameter for apiKey security + * @param name security name + */ + apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); + /** + * parameter for basic security + */ + username?: string; + /** + * parameter for basic security + */ + password?: string; + /** + * parameter for oauth2 security + * @param name security name + * @param scopes oauth2 scope + */ + accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); + /** + * parameter for aws4 signature security + * @param {Object} AWS4Signature - AWS4 Signature security + * @param {string} options.region - aws region + * @param {string} options.service - name of the service. + * @param {string} credentials.accessKeyId - aws access key id + * @param {string} credentials.secretAccessKey - aws access key + * @param {string} credentials.sessionToken - aws session token + * @memberof Configuration + */ + awsv4?: AWSv4Configuration; + /** + * override base path + */ + basePath?: string; + /** + * override server index + */ + serverIndex?: number; + /** + * base options for axios calls + */ + baseOptions?: any; + /** + * The FormData constructor that will be used to create multipart form data + * requests. You can inject this here so that execution environments that + * do not support the FormData class can still run the generated client. + * + * @type {new () => FormData} + */ + formDataCtor?: new () => any; + + constructor(param: ConfigurationParameters = {}) { + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.awsv4 = param.awsv4; + this.basePath = param.basePath; + this.serverIndex = param.serverIndex; + this.baseOptions = { + ...param.baseOptions, + headers: { + ...param.baseOptions?.headers, + }, + }; + this.formDataCtor = param.formDataCtor; + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + public isJsonMime(mime: string): boolean { + const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); + return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); + } +} diff --git a/packages/api-client/src/client/docs/CarApi.md b/packages/api-client/src/client/docs/CarApi.md new file mode 100644 index 0000000..dd5aa47 --- /dev/null +++ b/packages/api-client/src/client/docs/CarApi.md @@ -0,0 +1,237 @@ +# CarApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getCar**](#getcar) | **GET** /data/car/get | | +|[**getCarAssets**](#getcarassets) | **GET** /data/car/assets | | +|[**getCarAssetsDocs**](#getcarassetsdocs) | **GET** /data/doc/car/assets | | +|[**getCarDocs**](#getcardocs) | **GET** /data/doc/car | | +|[**getCarGetDocs**](#getcargetdocs) | **GET** /data/doc/car/get | | + +# **getCar** +> IracingAPIResponse getCar() + + +### Example + +```typescript +import { + CarApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarApi(configuration); + +const { status, data } = await apiInstance.getCar(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarAssets** +> IracingAPIResponse getCarAssets() + +image paths are relative to https://images-static.iracing.com/ + +### Example + +```typescript +import { + CarApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarApi(configuration); + +const { status, data } = await apiInstance.getCarAssets(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarAssetsDocs** +> IracingServiceMethodDocs getCarAssetsDocs() + + +### Example + +```typescript +import { + CarApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarApi(configuration); + +const { status, data } = await apiInstance.getCarAssetsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarDocs** +> { [key: string]: IracingServiceMethodDocs; } getCarDocs() + + +### Example + +```typescript +import { + CarApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarApi(configuration); + +const { status, data } = await apiInstance.getCarDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarGetDocs** +> IracingServiceMethodDocs getCarGetDocs() + + +### Example + +```typescript +import { + CarApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarApi(configuration); + +const { status, data } = await apiInstance.getCarGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/CarclassApi.md b/packages/api-client/src/client/docs/CarclassApi.md new file mode 100644 index 0000000..1e98ce8 --- /dev/null +++ b/packages/api-client/src/client/docs/CarclassApi.md @@ -0,0 +1,144 @@ +# CarclassApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getCarClass**](#getcarclass) | **GET** /data/carclass/get | Gets car classes.| +|[**getCarClassDocs**](#getcarclassdocs) | **GET** /data/doc/carclass | | +|[**getCarClassGetDocs**](#getcarclassgetdocs) | **GET** /data/doc/carclass/get | | + +# **getCarClass** +> IracingAPIResponse getCarClass() + + +### Example + +```typescript +import { + CarclassApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarclassApi(configuration); + +const { status, data } = await apiInstance.getCarClass(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarClassDocs** +> { [key: string]: IracingServiceMethodDocs; } getCarClassDocs() + + +### Example + +```typescript +import { + CarclassApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarclassApi(configuration); + +const { status, data } = await apiInstance.getCarClassDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarClassGetDocs** +> IracingServiceMethodDocs getCarClassGetDocs() + + +### Example + +```typescript +import { + CarclassApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new CarclassApi(configuration); + +const { status, data } = await apiInstance.getCarClassGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/ConstantsApi.md b/packages/api-client/src/client/docs/ConstantsApi.md new file mode 100644 index 0000000..bbcf1c7 --- /dev/null +++ b/packages/api-client/src/client/docs/ConstantsApi.md @@ -0,0 +1,331 @@ +# ConstantsApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getConstantsCategories**](#getconstantscategories) | **GET** /data/constants/categories | | +|[**getConstantsCategoriesDocs**](#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | | +|[**getConstantsDivisions**](#getconstantsdivisions) | **GET** /data/constants/divisions | | +|[**getConstantsDivisionsDocs**](#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | | +|[**getConstantsDocs**](#getconstantsdocs) | **GET** /data/doc/constants | | +|[**getConstantsEventTypes**](#getconstantseventtypes) | **GET** /data/constants/event_types | | +|[**getConstantsEventTypesDocs**](#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | | + +# **getConstantsCategories** +> IracingAPIResponse getConstantsCategories() + +Constant; returned directly as an array of objects + +### Example + +```typescript +import { + ConstantsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ConstantsApi(configuration); + +const { status, data } = await apiInstance.getConstantsCategories(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsCategoriesDocs** +> IracingServiceMethodDocs getConstantsCategoriesDocs() + + +### Example + +```typescript +import { + ConstantsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ConstantsApi(configuration); + +const { status, data } = await apiInstance.getConstantsCategoriesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsDivisions** +> IracingAPIResponse getConstantsDivisions() + +Constant; returned directly as an array of objects + +### Example + +```typescript +import { + ConstantsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ConstantsApi(configuration); + +const { status, data } = await apiInstance.getConstantsDivisions(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsDivisionsDocs** +> IracingServiceMethodDocs getConstantsDivisionsDocs() + + +### Example + +```typescript +import { + ConstantsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ConstantsApi(configuration); + +const { status, data } = await apiInstance.getConstantsDivisionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsDocs** +> { [key: string]: IracingServiceMethodDocs; } getConstantsDocs() + + +### Example + +```typescript +import { + ConstantsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ConstantsApi(configuration); + +const { status, data } = await apiInstance.getConstantsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsEventTypes** +> IracingAPIResponse getConstantsEventTypes() + +Constant; returned directly as an array of objects + +### Example + +```typescript +import { + ConstantsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ConstantsApi(configuration); + +const { status, data } = await apiInstance.getConstantsEventTypes(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsEventTypesDocs** +> IracingServiceMethodDocs getConstantsEventTypesDocs() + + +### Example + +```typescript +import { + ConstantsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ConstantsApi(configuration); + +const { status, data } = await apiInstance.getConstantsEventTypesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/DocApi.md b/packages/api-client/src/client/docs/DocApi.md new file mode 100644 index 0000000..6d12f6b --- /dev/null +++ b/packages/api-client/src/client/docs/DocApi.md @@ -0,0 +1,3749 @@ +# DocApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**dataDocSeasonSpectatorSubsessionidsDetailGet**](#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | | +|[**dataDocSeasonSpectatorSubsessionidsGet**](#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | | +|[**dataDocSeriesAssetsGet**](#datadocseriesassetsget) | **GET** /data/doc/series/assets | | +|[**dataDocSeriesGet**](#datadocseriesget) | **GET** /data/doc/series | | +|[**dataDocSeriesGetGet**](#datadocseriesgetget) | **GET** /data/doc/series/get | | +|[**dataDocSeriesPastSeasonsGet**](#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | | +|[**dataDocSeriesSeasonListGet**](#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | | +|[**dataDocSeriesSeasonScheduleGet**](#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | | +|[**dataDocSeriesSeasonsGet**](#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | | +|[**dataDocSeriesStatsSeriesGet**](#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | | +|[**dataDocStatsGet**](#datadocstatsget) | **GET** /data/doc/stats | | +|[**dataDocStatsMemberBestsGet**](#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | | +|[**dataDocStatsMemberCareerGet**](#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | | +|[**dataDocStatsMemberDivisionGet**](#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | | +|[**dataDocStatsMemberRecapGet**](#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | | +|[**dataDocStatsMemberRecentRacesGet**](#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | | +|[**dataDocStatsMemberSummaryGet**](#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | | +|[**dataDocStatsMemberYearlyGet**](#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | | +|[**dataDocStatsSeasonDriverStandingsGet**](#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | | +|[**dataDocStatsSeasonQualifyResultsGet**](#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | | +|[**dataDocStatsSeasonSupersessionStandingsGet**](#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | | +|[**dataDocStatsSeasonTeamStandingsGet**](#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | | +|[**dataDocStatsSeasonTtResultsGet**](#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | | +|[**dataDocStatsSeasonTtStandingsGet**](#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | | +|[**dataDocStatsWorldRecordsGet**](#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | | +|[**dataDocTimeAttackGet**](#datadoctimeattackget) | **GET** /data/doc/time_attack | | +|[**dataDocTimeAttackMemberSeasonResultsGet**](#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | | +|[**dataDocTrackAssetsGet**](#datadoctrackassetsget) | **GET** /data/doc/track/assets | | +|[**dataDocTrackGet**](#datadoctrackget) | **GET** /data/doc/track | | +|[**dataDocTrackGetGet**](#datadoctrackgetget) | **GET** /data/doc/track/get | | +|[**getCarAssetsDocs**](#getcarassetsdocs) | **GET** /data/doc/car/assets | | +|[**getCarClassDocs**](#getcarclassdocs) | **GET** /data/doc/carclass | | +|[**getCarClassGetDocs**](#getcarclassgetdocs) | **GET** /data/doc/carclass/get | | +|[**getCarDocs**](#getcardocs) | **GET** /data/doc/car | | +|[**getCarGetDocs**](#getcargetdocs) | **GET** /data/doc/car/get | | +|[**getConstantsCategoriesDocs**](#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | | +|[**getConstantsDivisionsDocs**](#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | | +|[**getConstantsDocs**](#getconstantsdocs) | **GET** /data/doc/constants | | +|[**getConstantsEventTypesDocs**](#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | | +|[**getDocs**](#getdocs) | **GET** /data/doc | | +|[**getDriverStatsByCategoryCategoryDocs**](#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | | +|[**getDriverStatsByCategoryDocs**](#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | | +|[**getHostedCombinedSessionsDocs**](#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | | +|[**getHostedDocs**](#gethosteddocs) | **GET** /data/doc/hosted | | +|[**getHostedSessionsDocs**](#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | | +|[**getLeagueCustomerLeagueSessionsDocs**](#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | | +|[**getLeagueDirectoryDocs**](#getleaguedirectorydocs) | **GET** /data/doc/league/directory | | +|[**getLeagueDocs**](#getleaguedocs) | **GET** /data/doc/league | | +|[**getLeagueGetDocs**](#getleaguegetdocs) | **GET** /data/doc/league/get | | +|[**getLeagueGetPointsSystemsDocs**](#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | | +|[**getLeagueMembershipDocs**](#getleaguemembershipdocs) | **GET** /data/doc/league/membership | | +|[**getLeagueRosterDocs**](#getleaguerosterdocs) | **GET** /data/doc/league/roster | | +|[**getLeagueSeasonSessionsDocs**](#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | | +|[**getLeagueSeasonStandingsDocs**](#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | | +|[**getLeagueSeasonsDocs**](#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | | +|[**getLookupCountriesDocs**](#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | | +|[**getLookupDocs**](#getlookupdocs) | **GET** /data/doc/lookup | | +|[**getLookupDriversDocs**](#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | | +|[**getLookupFlairsDocs**](#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | | +|[**getLookupGetDocs**](#getlookupgetdocs) | **GET** /data/doc/lookup/get | | +|[**getLookupLicensesDocs**](#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | | +|[**getMemberAwardInstancesDocs**](#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | | +|[**getMemberAwardsDocs**](#getmemberawardsdocs) | **GET** /data/doc/member/awards | | +|[**getMemberChartDataDocs**](#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | | +|[**getMemberDocs**](#getmemberdocs) | **GET** /data/doc/member | | +|[**getMemberGetDocs**](#getmembergetdocs) | **GET** /data/doc/member/get | | +|[**getMemberInfoDocs**](#getmemberinfodocs) | **GET** /data/doc/member/info | | +|[**getMemberParticipationCreditsDocs**](#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | | +|[**getMemberProfileDocs**](#getmemberprofiledocs) | **GET** /data/doc/member/profile | | +|[**getResultsDocs**](#getresultsdocs) | **GET** /data/doc/results | | +|[**getResultsEventLogDocs**](#getresultseventlogdocs) | **GET** /data/doc/results/event_log | | +|[**getResultsGetDocs**](#getresultsgetdocs) | **GET** /data/doc/results/get | | +|[**getResultsLapChartDataDocs**](#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | | +|[**getResultsLapDataDocs**](#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | | +|[**getResultsSearchHostedDocs**](#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | | +|[**getResultsSearchSeriesDocs**](#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | | +|[**getResultsSeasonResultsDocs**](#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | | +|[**getSeasonDocs**](#getseasondocs) | **GET** /data/doc/season | | +|[**getSeasonListDocs**](#getseasonlistdocs) | **GET** /data/doc/season/list | | +|[**getSeasonRaceGuideDocs**](#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | | +|[**getTeamDocs**](#getteamdocs) | **GET** /data/doc/team | | +|[**getTeamGetDocs**](#getteamgetdocs) | **GET** /data/doc/team/get | | +|[**getTeamMembershipDocs**](#getteammembershipdocs) | **GET** /data/doc/team/membership | | + +# **dataDocSeasonSpectatorSubsessionidsDetailGet** +> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsDetailGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsDetailGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeasonSpectatorSubsessionidsGet** +> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesAssetsGet** +> IracingServiceMethodDocs dataDocSeriesAssetsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesAssetsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocSeriesGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesGetGet** +> IracingServiceMethodDocs dataDocSeriesGetGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesGetGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesPastSeasonsGet** +> IracingServiceMethodDocs dataDocSeriesPastSeasonsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesPastSeasonsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesSeasonListGet** +> IracingServiceMethodDocs dataDocSeriesSeasonListGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesSeasonListGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesSeasonScheduleGet** +> IracingServiceMethodDocs dataDocSeriesSeasonScheduleGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesSeasonScheduleGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesSeasonsGet** +> IracingServiceMethodDocs dataDocSeriesSeasonsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesSeasonsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesStatsSeriesGet** +> IracingServiceMethodDocs dataDocSeriesStatsSeriesGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesStatsSeriesGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocStatsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberBestsGet** +> IracingServiceMethodDocs dataDocStatsMemberBestsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberBestsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberCareerGet** +> IracingServiceMethodDocs dataDocStatsMemberCareerGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberCareerGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberDivisionGet** +> IracingServiceMethodDocs dataDocStatsMemberDivisionGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberDivisionGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberRecapGet** +> IracingServiceMethodDocs dataDocStatsMemberRecapGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberRecapGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberRecentRacesGet** +> IracingServiceMethodDocs dataDocStatsMemberRecentRacesGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberRecentRacesGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberSummaryGet** +> IracingServiceMethodDocs dataDocStatsMemberSummaryGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberSummaryGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberYearlyGet** +> IracingServiceMethodDocs dataDocStatsMemberYearlyGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberYearlyGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonDriverStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonDriverStandingsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonDriverStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonQualifyResultsGet** +> IracingServiceMethodDocs dataDocStatsSeasonQualifyResultsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonQualifyResultsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonSupersessionStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonSupersessionStandingsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonSupersessionStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonTeamStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonTeamStandingsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonTeamStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonTtResultsGet** +> IracingServiceMethodDocs dataDocStatsSeasonTtResultsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonTtResultsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonTtStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonTtStandingsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonTtStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsWorldRecordsGet** +> IracingServiceMethodDocs dataDocStatsWorldRecordsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsWorldRecordsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTimeAttackGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocTimeAttackGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocTimeAttackGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTimeAttackMemberSeasonResultsGet** +> IracingServiceMethodDocs dataDocTimeAttackMemberSeasonResultsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocTimeAttackMemberSeasonResultsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTrackAssetsGet** +> IracingServiceMethodDocs dataDocTrackAssetsGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocTrackAssetsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTrackGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocTrackGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocTrackGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTrackGetGet** +> IracingServiceMethodDocs dataDocTrackGetGet() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.dataDocTrackGetGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarAssetsDocs** +> IracingServiceMethodDocs getCarAssetsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getCarAssetsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarClassDocs** +> { [key: string]: IracingServiceMethodDocs; } getCarClassDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getCarClassDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarClassGetDocs** +> IracingServiceMethodDocs getCarClassGetDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getCarClassGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarDocs** +> { [key: string]: IracingServiceMethodDocs; } getCarDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getCarDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarGetDocs** +> IracingServiceMethodDocs getCarGetDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getCarGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsCategoriesDocs** +> IracingServiceMethodDocs getConstantsCategoriesDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getConstantsCategoriesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsDivisionsDocs** +> IracingServiceMethodDocs getConstantsDivisionsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getConstantsDivisionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsDocs** +> { [key: string]: IracingServiceMethodDocs; } getConstantsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getConstantsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getConstantsEventTypesDocs** +> IracingServiceMethodDocs getConstantsEventTypesDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getConstantsEventTypesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getDocs** +> { [key: string]: { [key: string]: IracingServiceMethodDocs; }; } getDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getDriverStatsByCategoryCategoryDocs** +> IracingServiceMethodDocs getDriverStatsByCategoryCategoryDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +let category: IracingCategory; //Racing category. (default to undefined) + +const { status, data } = await apiInstance.getDriverStatsByCategoryCategoryDocs( + category +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **category** | **IracingCategory** | Racing category. | defaults to undefined| + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getDriverStatsByCategoryDocs** +> { [key: string]: IracingServiceMethodDocs; } getDriverStatsByCategoryDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getDriverStatsByCategoryDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedCombinedSessionsDocs** +> IracingServiceMethodDocs getHostedCombinedSessionsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getHostedCombinedSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedDocs** +> { [key: string]: IracingServiceMethodDocs; } getHostedDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getHostedDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedSessionsDocs** +> IracingServiceMethodDocs getHostedSessionsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getHostedSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueCustomerLeagueSessionsDocs** +> IracingServiceMethodDocs getLeagueCustomerLeagueSessionsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueCustomerLeagueSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueDirectoryDocs** +> IracingServiceMethodDocs getLeagueDirectoryDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueDirectoryDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueDocs** +> { [key: string]: IracingServiceMethodDocs; } getLeagueDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueGetDocs** +> IracingServiceMethodDocs getLeagueGetDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueGetPointsSystemsDocs** +> IracingServiceMethodDocs getLeagueGetPointsSystemsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueGetPointsSystemsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueMembershipDocs** +> IracingServiceMethodDocs getLeagueMembershipDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueMembershipDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueRosterDocs** +> IracingServiceMethodDocs getLeagueRosterDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueRosterDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonSessionsDocs** +> IracingServiceMethodDocs getLeagueSeasonSessionsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueSeasonSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonStandingsDocs** +> IracingServiceMethodDocs getLeagueSeasonStandingsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueSeasonStandingsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonsDocs** +> IracingServiceMethodDocs getLeagueSeasonsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLeagueSeasonsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupCountriesDocs** +> IracingServiceMethodDocs getLookupCountriesDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLookupCountriesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupDocs** +> { [key: string]: IracingServiceMethodDocs; } getLookupDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLookupDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupDriversDocs** +> IracingServiceMethodDocs getLookupDriversDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLookupDriversDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupFlairsDocs** +> IracingServiceMethodDocs getLookupFlairsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLookupFlairsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupGetDocs** +> IracingServiceMethodDocs getLookupGetDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLookupGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupLicensesDocs** +> IracingServiceMethodDocs getLookupLicensesDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getLookupLicensesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberAwardInstancesDocs** +> IracingServiceMethodDocs getMemberAwardInstancesDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberAwardInstancesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberAwardsDocs** +> IracingServiceMethodDocs getMemberAwardsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberAwardsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberChartDataDocs** +> IracingServiceMethodDocs getMemberChartDataDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberChartDataDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberDocs** +> { [key: string]: IracingServiceMethodDocs; } getMemberDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberGetDocs** +> IracingServiceMethodDocs getMemberGetDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberInfoDocs** +> IracingServiceMethodDocs getMemberInfoDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberInfoDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberParticipationCreditsDocs** +> IracingServiceMethodDocs getMemberParticipationCreditsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberParticipationCreditsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberProfileDocs** +> IracingServiceMethodDocs getMemberProfileDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getMemberProfileDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsDocs** +> { [key: string]: IracingServiceMethodDocs; } getResultsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsEventLogDocs** +> IracingServiceMethodDocs getResultsEventLogDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsEventLogDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsGetDocs** +> IracingServiceMethodDocs getResultsGetDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsLapChartDataDocs** +> IracingServiceMethodDocs getResultsLapChartDataDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsLapChartDataDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsLapDataDocs** +> IracingServiceMethodDocs getResultsLapDataDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsLapDataDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSearchHostedDocs** +> IracingServiceMethodDocs getResultsSearchHostedDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsSearchHostedDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSearchSeriesDocs** +> IracingServiceMethodDocs getResultsSearchSeriesDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsSearchSeriesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSeasonResultsDocs** +> IracingServiceMethodDocs getResultsSeasonResultsDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getResultsSeasonResultsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonDocs** +> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getSeasonDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonListDocs** +> IracingServiceMethodDocs getSeasonListDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getSeasonListDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonRaceGuideDocs** +> IracingServiceMethodDocs getSeasonRaceGuideDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getSeasonRaceGuideDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamDocs** +> { [key: string]: IracingServiceMethodDocs; } getTeamDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getTeamDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamGetDocs** +> IracingServiceMethodDocs getTeamGetDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getTeamGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamMembershipDocs** +> IracingServiceMethodDocs getTeamMembershipDocs() + + +### Example + +```typescript +import { + DocApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DocApi(configuration); + +const { status, data } = await apiInstance.getTeamMembershipDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/DriverStatsApi.md b/packages/api-client/src/client/docs/DriverStatsApi.md new file mode 100644 index 0000000..924526d --- /dev/null +++ b/packages/api-client/src/client/docs/DriverStatsApi.md @@ -0,0 +1,158 @@ +# DriverStatsApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getDriverStatsByCategory**](#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | | +|[**getDriverStatsByCategoryCategoryDocs**](#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | | +|[**getDriverStatsByCategoryDocs**](#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | | + +# **getDriverStatsByCategory** +> IracingAPIResponse getDriverStatsByCategory() + + +### Example + +```typescript +import { + DriverStatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DriverStatsApi(configuration); + +let category: IracingCategory; //Racing category. (default to undefined) + +const { status, data } = await apiInstance.getDriverStatsByCategory( + category +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **category** | **IracingCategory** | Racing category. | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getDriverStatsByCategoryCategoryDocs** +> IracingServiceMethodDocs getDriverStatsByCategoryCategoryDocs() + + +### Example + +```typescript +import { + DriverStatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DriverStatsApi(configuration); + +let category: IracingCategory; //Racing category. (default to undefined) + +const { status, data } = await apiInstance.getDriverStatsByCategoryCategoryDocs( + category +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **category** | **IracingCategory** | Racing category. | defaults to undefined| + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getDriverStatsByCategoryDocs** +> { [key: string]: IracingServiceMethodDocs; } getDriverStatsByCategoryDocs() + + +### Example + +```typescript +import { + DriverStatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new DriverStatsApi(configuration); + +const { status, data } = await apiInstance.getDriverStatsByCategoryDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/ErrorResponse.md b/packages/api-client/src/client/docs/ErrorResponse.md new file mode 100644 index 0000000..bb6c3e1 --- /dev/null +++ b/packages/api-client/src/client/docs/ErrorResponse.md @@ -0,0 +1,24 @@ +# ErrorResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**error** | **string** | | [default to undefined] +**message** | **string** | | [optional] [default to undefined] +**note** | **string** | | [optional] [default to undefined] + +## Example + +```typescript +import { ErrorResponse } from '@iracing-data/api-client'; + +const instance: ErrorResponse = { + error, + message, + note, +}; +``` + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/HostedApi.md b/packages/api-client/src/client/docs/HostedApi.md new file mode 100644 index 0000000..93ae4a2 --- /dev/null +++ b/packages/api-client/src/client/docs/HostedApi.md @@ -0,0 +1,245 @@ +# HostedApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getHostedCombinedSessions**](#gethostedcombinedsessions) | **GET** /data/hosted/combined_sessions | | +|[**getHostedCombinedSessionsDocs**](#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | | +|[**getHostedDocs**](#gethosteddocs) | **GET** /data/doc/hosted | | +|[**getHostedSessions**](#gethostedsessions) | **GET** /data/hosted/sessions | | +|[**getHostedSessionsDocs**](#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | | + +# **getHostedCombinedSessions** +> IracingAPIResponse getHostedCombinedSessions() + +Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + +### Example + +```typescript +import { + HostedApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new HostedApi(configuration); + +let package_id: number; //If set, return only sessions using this car or track package ID. (optional) (default to undefined) + +const { status, data } = await apiInstance.getHostedCombinedSessions( + package_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **package_id** | [**number**] | If set, return only sessions using this car or track package ID. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedCombinedSessionsDocs** +> IracingServiceMethodDocs getHostedCombinedSessionsDocs() + + +### Example + +```typescript +import { + HostedApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new HostedApi(configuration); + +const { status, data } = await apiInstance.getHostedCombinedSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedDocs** +> { [key: string]: IracingServiceMethodDocs; } getHostedDocs() + + +### Example + +```typescript +import { + HostedApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new HostedApi(configuration); + +const { status, data } = await apiInstance.getHostedDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedSessions** +> IracingAPIResponse getHostedSessions() + +Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + +### Example + +```typescript +import { + HostedApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new HostedApi(configuration); + +const { status, data } = await apiInstance.getHostedSessions(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedSessionsDocs** +> IracingServiceMethodDocs getHostedSessionsDocs() + + +### Example + +```typescript +import { + HostedApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new HostedApi(configuration); + +const { status, data } = await apiInstance.getHostedSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/IracingAPIResponse.md b/packages/api-client/src/client/docs/IracingAPIResponse.md new file mode 100644 index 0000000..344881c --- /dev/null +++ b/packages/api-client/src/client/docs/IracingAPIResponse.md @@ -0,0 +1,23 @@ +# IracingAPIResponse + +Response from iRacing `/data` API. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | **string** | A link to the cached data | [default to undefined] +**expires** | **string** | | [default to undefined] + +## Example + +```typescript +import { IracingAPIResponse } from '@iracing-data/api-client'; + +const instance: IracingAPIResponse = { + link, + expires, +}; +``` + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/IracingCategory.md b/packages/api-client/src/client/docs/IracingCategory.md new file mode 100644 index 0000000..6ab8bef --- /dev/null +++ b/packages/api-client/src/client/docs/IracingCategory.md @@ -0,0 +1,19 @@ +# IracingCategory + +Racing category. + +## Enum + +* `Oval` (value: `'oval'`) + +* `Road` (value: `'road'`) + +* `DirtRoad` (value: `'dirt_road'`) + +* `DirtOval` (value: `'dirt_oval'`) + +* `SportsCar` (value: `'sports_car'`) + +* `FormulaCar` (value: `'formula_car'`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/IracingChartType.md b/packages/api-client/src/client/docs/IracingChartType.md new file mode 100644 index 0000000..5949866 --- /dev/null +++ b/packages/api-client/src/client/docs/IracingChartType.md @@ -0,0 +1,13 @@ +# IracingChartType + +iRacing Chart Type + +## Enum + +* `NUMBER_1` (value: `1`) + +* `NUMBER_2` (value: `2`) + +* `NUMBER_3` (value: `3`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/IracingDivision.md b/packages/api-client/src/client/docs/IracingDivision.md new file mode 100644 index 0000000..42fc765 --- /dev/null +++ b/packages/api-client/src/client/docs/IracingDivision.md @@ -0,0 +1,29 @@ +# IracingDivision + +iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. + +## Enum + +* `NUMBER_0` (value: `0`) + +* `NUMBER_1` (value: `1`) + +* `NUMBER_2` (value: `2`) + +* `NUMBER_3` (value: `3`) + +* `NUMBER_4` (value: `4`) + +* `NUMBER_5` (value: `5`) + +* `NUMBER_6` (value: `6`) + +* `NUMBER_7` (value: `7`) + +* `NUMBER_8` (value: `8`) + +* `NUMBER_9` (value: `9`) + +* `NUMBER_10` (value: `10`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/IracingEventType.md b/packages/api-client/src/client/docs/IracingEventType.md new file mode 100644 index 0000000..eb7ac70 --- /dev/null +++ b/packages/api-client/src/client/docs/IracingEventType.md @@ -0,0 +1,15 @@ +# IracingEventType + +iRacing Event Type + +## Enum + +* `NUMBER_2` (value: `2`) + +* `NUMBER_3` (value: `3`) + +* `NUMBER_4` (value: `4`) + +* `NUMBER_5` (value: `5`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/IracingServiceMethodDocs.md b/packages/api-client/src/client/docs/IracingServiceMethodDocs.md new file mode 100644 index 0000000..72f022d --- /dev/null +++ b/packages/api-client/src/client/docs/IracingServiceMethodDocs.md @@ -0,0 +1,25 @@ +# IracingServiceMethodDocs + +An iRacing API Service Method object. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**link** | **string** | | [default to undefined] +**parameters** | [**{ [key: string]: IracingServiceMethodParametersDocs; }**](IracingServiceMethodParametersDocs.md) | | [default to undefined] +**expirationSeconds** | **number** | | [optional] [default to undefined] + +## Example + +```typescript +import { IracingServiceMethodDocs } from '@iracing-data/api-client'; + +const instance: IracingServiceMethodDocs = { + link, + parameters, + expirationSeconds, +}; +``` + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/IracingServiceMethodParametersDocs.md b/packages/api-client/src/client/docs/IracingServiceMethodParametersDocs.md new file mode 100644 index 0000000..cf6ae0d --- /dev/null +++ b/packages/api-client/src/client/docs/IracingServiceMethodParametersDocs.md @@ -0,0 +1,25 @@ +# IracingServiceMethodParametersDocs + +An iRacing API Service Method Parameters object. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **string** | | [default to undefined] +**note** | **string** | | [optional] [default to undefined] +**required** | **boolean** | | [optional] [default to undefined] + +## Example + +```typescript +import { IracingServiceMethodParametersDocs } from '@iracing-data/api-client'; + +const instance: IracingServiceMethodParametersDocs = { + type, + note, + required, +}; +``` + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/LeagueApi.md b/packages/api-client/src/client/docs/LeagueApi.md new file mode 100644 index 0000000..4748ab4 --- /dev/null +++ b/packages/api-client/src/client/docs/LeagueApi.md @@ -0,0 +1,1009 @@ +# LeagueApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getLeague**](#getleague) | **GET** /data/league/get | | +|[**getLeagueCustomerLeagueSessions**](#getleaguecustomerleaguesessions) | **GET** /data/league/cust_league_sessions | | +|[**getLeagueCustomerLeagueSessionsDocs**](#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | | +|[**getLeagueDirectory**](#getleaguedirectory) | **GET** /data/league/directory | | +|[**getLeagueDirectoryDocs**](#getleaguedirectorydocs) | **GET** /data/doc/league/directory | | +|[**getLeagueDocs**](#getleaguedocs) | **GET** /data/doc/league | | +|[**getLeagueGetDocs**](#getleaguegetdocs) | **GET** /data/doc/league/get | | +|[**getLeagueGetPointsSystemsDocs**](#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | | +|[**getLeagueMembership**](#getleaguemembership) | **GET** /data/league/membership | | +|[**getLeagueMembershipDocs**](#getleaguemembershipdocs) | **GET** /data/doc/league/membership | | +|[**getLeaguePointsSystems**](#getleaguepointssystems) | **GET** /data/league/get_points_systems | | +|[**getLeagueRoster**](#getleagueroster) | **GET** /data/league/roster | | +|[**getLeagueRosterDocs**](#getleaguerosterdocs) | **GET** /data/doc/league/roster | | +|[**getLeagueSeasonSessions**](#getleagueseasonsessions) | **GET** /data/league/season_sessions | | +|[**getLeagueSeasonSessionsDocs**](#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | | +|[**getLeagueSeasonStandings**](#getleagueseasonstandings) | **GET** /data/league/season_standings | | +|[**getLeagueSeasonStandingsDocs**](#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | | +|[**getLeagueSeasons**](#getleagueseasons) | **GET** /data/league/seasons | | +|[**getLeagueSeasonsDocs**](#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | | + +# **getLeague** +> IracingAPIResponse getLeague() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let league_id: number; // (default to undefined) +let include_licenses: boolean; //For faster responses, only request when necessary. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeague( + league_id, + include_licenses +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **league_id** | [**number**] | | defaults to undefined| +| **include_licenses** | [**boolean**] | For faster responses, only request when necessary. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueCustomerLeagueSessions** +> IracingAPIResponse getLeagueCustomerLeagueSessions() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let mine: boolean; //If true, return only sessions created by this user. (optional) (default to undefined) +let package_id: number; //If set, return only sessions using this car or track package ID. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeagueCustomerLeagueSessions( + mine, + package_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **mine** | [**boolean**] | If true, return only sessions created by this user. | (optional) defaults to undefined| +| **package_id** | [**number**] | If set, return only sessions using this car or track package ID. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueCustomerLeagueSessionsDocs** +> IracingServiceMethodDocs getLeagueCustomerLeagueSessionsDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueCustomerLeagueSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueDirectory** +> IracingAPIResponse getLeagueDirectory() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let search: string; //Will search against league name, description, owner, and league ID. (optional) (default to undefined) +let tag: string; //One or more tags, comma-separated. (optional) (default to undefined) +let restrict_to_member: boolean; //If true include only leagues for which customer is a member. (optional) (default to undefined) +let restrict_to_recruiting: boolean; //If true include only leagues which are recruiting. (optional) (default to undefined) +let restrict_to_friends: boolean; //If true include only leagues owned by a friend. (optional) (default to undefined) +let restrict_to_watched: boolean; //If true include only leagues owned by a watched member. (optional) (default to undefined) +let minimum_roster_count: number; //If set include leagues with at least this number of members. (optional) (default to undefined) +let maximum_roster_count: number; //If set include leagues with no more than this number of members. (optional) (default to undefined) +let lowerbound: number; //First row of results to return. Defaults to 1. (optional) (default to undefined) +let upperbound: number; //Last row of results to return. Defaults to lowerbound + 39. (optional) (default to undefined) +let sort: string; //One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. (optional) (default to undefined) +let order: string; //One of asc or desc. Defaults to asc. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeagueDirectory( + search, + tag, + restrict_to_member, + restrict_to_recruiting, + restrict_to_friends, + restrict_to_watched, + minimum_roster_count, + maximum_roster_count, + lowerbound, + upperbound, + sort, + order +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **search** | [**string**] | Will search against league name, description, owner, and league ID. | (optional) defaults to undefined| +| **tag** | [**string**] | One or more tags, comma-separated. | (optional) defaults to undefined| +| **restrict_to_member** | [**boolean**] | If true include only leagues for which customer is a member. | (optional) defaults to undefined| +| **restrict_to_recruiting** | [**boolean**] | If true include only leagues which are recruiting. | (optional) defaults to undefined| +| **restrict_to_friends** | [**boolean**] | If true include only leagues owned by a friend. | (optional) defaults to undefined| +| **restrict_to_watched** | [**boolean**] | If true include only leagues owned by a watched member. | (optional) defaults to undefined| +| **minimum_roster_count** | [**number**] | If set include leagues with at least this number of members. | (optional) defaults to undefined| +| **maximum_roster_count** | [**number**] | If set include leagues with no more than this number of members. | (optional) defaults to undefined| +| **lowerbound** | [**number**] | First row of results to return. Defaults to 1. | (optional) defaults to undefined| +| **upperbound** | [**number**] | Last row of results to return. Defaults to lowerbound + 39. | (optional) defaults to undefined| +| **sort** | [**string**] | One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. | (optional) defaults to undefined| +| **order** | [**string**] | One of asc or desc. Defaults to asc. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueDirectoryDocs** +> IracingServiceMethodDocs getLeagueDirectoryDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueDirectoryDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueDocs** +> { [key: string]: IracingServiceMethodDocs; } getLeagueDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueGetDocs** +> IracingServiceMethodDocs getLeagueGetDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueGetPointsSystemsDocs** +> IracingServiceMethodDocs getLeagueGetPointsSystemsDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueGetPointsSystemsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueMembership** +> IracingAPIResponse getLeagueMembership() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let cust_id: number; //If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. (optional) (default to undefined) +let include_league: boolean; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeagueMembership( + cust_id, + include_league +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. | (optional) defaults to undefined| +| **include_league** | [**boolean**] | | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueMembershipDocs** +> IracingServiceMethodDocs getLeagueMembershipDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueMembershipDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeaguePointsSystems** +> IracingAPIResponse getLeaguePointsSystems() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let league_id: number; // (default to undefined) +let season_id: number; //If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeaguePointsSystems( + league_id, + season_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **league_id** | [**number**] | | defaults to undefined| +| **season_id** | [**number**] | If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueRoster** +> IracingAPIResponse getLeagueRoster() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let league_id: number; // (default to undefined) +let include_licenses: boolean; //For faster responses, only request when necessary. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeagueRoster( + league_id, + include_licenses +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **league_id** | [**number**] | | defaults to undefined| +| **include_licenses** | [**boolean**] | For faster responses, only request when necessary. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueRosterDocs** +> IracingServiceMethodDocs getLeagueRosterDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueRosterDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonSessions** +> IracingAPIResponse getLeagueSeasonSessions() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let league_id: number; // (default to undefined) +let season_id: number; // (default to undefined) +let results_only: boolean; //If true include only sessions for which results are available. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeagueSeasonSessions( + league_id, + season_id, + results_only +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **league_id** | [**number**] | | defaults to undefined| +| **season_id** | [**number**] | | defaults to undefined| +| **results_only** | [**boolean**] | If true include only sessions for which results are available. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonSessionsDocs** +> IracingServiceMethodDocs getLeagueSeasonSessionsDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueSeasonSessionsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonStandings** +> IracingAPIResponse getLeagueSeasonStandings() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let league_id: number; // (default to undefined) +let season_id: number; // (default to undefined) +let car_class_id: number; // (optional) (default to undefined) +let car_id: number; //If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeagueSeasonStandings( + league_id, + season_id, + car_class_id, + car_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **league_id** | [**number**] | | defaults to undefined| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | (optional) defaults to undefined| +| **car_id** | [**number**] | If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonStandingsDocs** +> IracingServiceMethodDocs getLeagueSeasonStandingsDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueSeasonStandingsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasons** +> IracingAPIResponse getLeagueSeasons() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +let league_id: number; // (default to undefined) +let retired: boolean; //If true include seasons which are no longer active. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLeagueSeasons( + league_id, + retired +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **league_id** | [**number**] | | defaults to undefined| +| **retired** | [**boolean**] | If true include seasons which are no longer active. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLeagueSeasonsDocs** +> IracingServiceMethodDocs getLeagueSeasonsDocs() + + +### Example + +```typescript +import { + LeagueApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LeagueApi(configuration); + +const { status, data } = await apiInstance.getLeagueSeasonsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/LookupApi.md b/packages/api-client/src/client/docs/LookupApi.md new file mode 100644 index 0000000..b1031d6 --- /dev/null +++ b/packages/api-client/src/client/docs/LookupApi.md @@ -0,0 +1,522 @@ +# LookupApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getLookup**](#getlookup) | **GET** /data/lookup/get | | +|[**getLookupCountries**](#getlookupcountries) | **GET** /data/lookup/countries | | +|[**getLookupCountriesDocs**](#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | | +|[**getLookupDocs**](#getlookupdocs) | **GET** /data/doc/lookup | | +|[**getLookupDrivers**](#getlookupdrivers) | **GET** /data/lookup/drivers | | +|[**getLookupDriversDocs**](#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | | +|[**getLookupFlairs**](#getlookupflairs) | **GET** /data/lookup/flairs | | +|[**getLookupFlairsDocs**](#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | | +|[**getLookupGetDocs**](#getlookupgetdocs) | **GET** /data/doc/lookup/get | | +|[**getLookupLicenses**](#getlookuplicenses) | **GET** /data/lookup/licenses | | +|[**getLookupLicensesDocs**](#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | | + +# **getLookup** +> IracingAPIResponse getLookup() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookup(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupCountries** +> IracingAPIResponse getLookupCountries() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupCountries(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupCountriesDocs** +> IracingServiceMethodDocs getLookupCountriesDocs() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupCountriesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupDocs** +> { [key: string]: IracingServiceMethodDocs; } getLookupDocs() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupDrivers** +> IracingAPIResponse getLookupDrivers() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +let search_term: string; //A cust_id or partial name for which to search. (default to undefined) +let league_id: number; //Narrow the search to the roster of the given league. (optional) (default to undefined) + +const { status, data } = await apiInstance.getLookupDrivers( + search_term, + league_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **search_term** | [**string**] | A cust_id or partial name for which to search. | defaults to undefined| +| **league_id** | [**number**] | Narrow the search to the roster of the given league. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupDriversDocs** +> IracingServiceMethodDocs getLookupDriversDocs() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupDriversDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupFlairs** +> IracingAPIResponse getLookupFlairs() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupFlairs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupFlairsDocs** +> IracingServiceMethodDocs getLookupFlairsDocs() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupFlairsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupGetDocs** +> IracingServiceMethodDocs getLookupGetDocs() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupLicenses** +> IracingAPIResponse getLookupLicenses() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupLicenses(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getLookupLicensesDocs** +> IracingServiceMethodDocs getLookupLicensesDocs() + + +### Example + +```typescript +import { + LookupApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new LookupApi(configuration); + +const { status, data } = await apiInstance.getLookupLicensesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/MemberApi.md b/packages/api-client/src/client/docs/MemberApi.md new file mode 100644 index 0000000..d571c22 --- /dev/null +++ b/packages/api-client/src/client/docs/MemberApi.md @@ -0,0 +1,743 @@ +# MemberApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getMember**](#getmember) | **GET** /data/member/get | | +|[**getMemberAwardInstances**](#getmemberawardinstances) | **GET** /data/member/award_instances | | +|[**getMemberAwardInstancesDocs**](#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | | +|[**getMemberAwards**](#getmemberawards) | **GET** /data/member/awards | | +|[**getMemberAwardsDocs**](#getmemberawardsdocs) | **GET** /data/doc/member/awards | | +|[**getMemberChartData**](#getmemberchartdata) | **GET** /data/member/chart_data | | +|[**getMemberChartDataDocs**](#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | | +|[**getMemberDocs**](#getmemberdocs) | **GET** /data/doc/member | | +|[**getMemberGetDocs**](#getmembergetdocs) | **GET** /data/doc/member/get | | +|[**getMemberInfo**](#getmemberinfo) | **GET** /data/member/info | | +|[**getMemberInfoDocs**](#getmemberinfodocs) | **GET** /data/doc/member/info | | +|[**getMemberParticipationCredits**](#getmemberparticipationcredits) | **GET** /data/member/participation_credits | | +|[**getMemberParticipationCreditsDocs**](#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | | +|[**getMemberProfile**](#getmemberprofile) | **GET** /data/member/profile | Gets a requested user\'s profile.| +|[**getMemberProfileDocs**](#getmemberprofiledocs) | **GET** /data/doc/member/profile | | + +# **getMember** +> IracingAPIResponse getMember() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +let cust_ids: Array; //?cust_ids=2,3,4 (default to undefined) +let include_licenses: boolean; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getMember( + cust_ids, + include_licenses +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_ids** | **Array<number>** | ?cust_ids=2,3,4 | defaults to undefined| +| **include_licenses** | [**boolean**] | | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberAwardInstances** +> IracingAPIResponse getMemberAwardInstances() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +let award_id: number; // (default to undefined) +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getMemberAwardInstances( + award_id, + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **award_id** | [**number**] | | defaults to undefined| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberAwardInstancesDocs** +> IracingServiceMethodDocs getMemberAwardInstancesDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberAwardInstancesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberAwards** +> IracingAPIResponse getMemberAwards() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getMemberAwards( + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberAwardsDocs** +> IracingServiceMethodDocs getMemberAwardsDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberAwardsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberChartData** +> IracingAPIResponse getMemberChartData() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +let category_id: number; //1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road (default to undefined) +let chart_type: IracingChartType; //1 - iRating; 2 - TT Rating; 3 - License/SR (default to undefined) +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getMemberChartData( + category_id, + chart_type, + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **category_id** | [**number**] | 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road | defaults to undefined| +| **chart_type** | **IracingChartType** | 1 - iRating; 2 - TT Rating; 3 - License/SR | defaults to undefined| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberChartDataDocs** +> IracingServiceMethodDocs getMemberChartDataDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberChartDataDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberDocs** +> { [key: string]: IracingServiceMethodDocs; } getMemberDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberGetDocs** +> IracingServiceMethodDocs getMemberGetDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberInfo** +> IracingAPIResponse getMemberInfo() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberInfo(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberInfoDocs** +> IracingServiceMethodDocs getMemberInfoDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberInfoDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberParticipationCredits** +> IracingAPIResponse getMemberParticipationCredits() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberParticipationCredits(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberParticipationCreditsDocs** +> IracingServiceMethodDocs getMemberParticipationCreditsDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberParticipationCreditsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberProfile** +> IracingAPIResponse getMemberProfile() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getMemberProfile( + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getMemberProfileDocs** +> IracingServiceMethodDocs getMemberProfileDocs() + + +### Example + +```typescript +import { + MemberApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new MemberApi(configuration); + +const { status, data } = await apiInstance.getMemberProfileDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/ResultsApi.md b/packages/api-client/src/client/docs/ResultsApi.md new file mode 100644 index 0000000..bd2a949 --- /dev/null +++ b/packages/api-client/src/client/docs/ResultsApi.md @@ -0,0 +1,841 @@ +# ResultsApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getResults**](#getresults) | **GET** /data/results/get | | +|[**getResultsDocs**](#getresultsdocs) | **GET** /data/doc/results | | +|[**getResultsEventLog**](#getresultseventlog) | **GET** /data/results/event_log | | +|[**getResultsEventLogDocs**](#getresultseventlogdocs) | **GET** /data/doc/results/event_log | | +|[**getResultsGetDocs**](#getresultsgetdocs) | **GET** /data/doc/results/get | | +|[**getResultsLapChartData**](#getresultslapchartdata) | **GET** /data/results/lap_chart_data | | +|[**getResultsLapChartDataDocs**](#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | | +|[**getResultsLapData**](#getresultslapdata) | **GET** /data/results/lap_data | | +|[**getResultsLapDataDocs**](#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | | +|[**getResultsSearchHosted**](#getresultssearchhosted) | **GET** /data/results/search_hosted | | +|[**getResultsSearchHostedDocs**](#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | | +|[**getResultsSearchSeries**](#getresultssearchseries) | **GET** /data/results/search_series | | +|[**getResultsSearchSeriesDocs**](#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | | +|[**getResultsSeasonResults**](#getresultsseasonresults) | **GET** /data/results/season_results | | +|[**getResultsSeasonResultsDocs**](#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | | + +# **getResults** +> IracingAPIResponse getResults() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +let subsession_id: number; // (default to undefined) +let include_licenses: boolean; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getResults( + subsession_id, + include_licenses +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | [**number**] | | defaults to undefined| +| **include_licenses** | [**boolean**] | | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsDocs** +> { [key: string]: IracingServiceMethodDocs; } getResultsDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsEventLog** +> IracingAPIResponse getResultsEventLog() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +let subsession_id: number; // (default to undefined) +let simsession_number: number; //The main event is 0; the preceding event is -1, and so on. (default to undefined) + +const { status, data } = await apiInstance.getResultsEventLog( + subsession_id, + simsession_number +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | [**number**] | | defaults to undefined| +| **simsession_number** | [**number**] | The main event is 0; the preceding event is -1, and so on. | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsEventLogDocs** +> IracingServiceMethodDocs getResultsEventLogDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsEventLogDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsGetDocs** +> IracingServiceMethodDocs getResultsGetDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsLapChartData** +> IracingAPIResponse getResultsLapChartData() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +let subsession_id: number; // (default to undefined) +let simsession_number: number; //The main event is 0; the preceding event is -1, and so on. (default to undefined) + +const { status, data } = await apiInstance.getResultsLapChartData( + subsession_id, + simsession_number +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | [**number**] | | defaults to undefined| +| **simsession_number** | [**number**] | The main event is 0; the preceding event is -1, and so on. | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsLapChartDataDocs** +> IracingServiceMethodDocs getResultsLapChartDataDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsLapChartDataDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsLapData** +> IracingAPIResponse getResultsLapData() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +let subsession_id: number; // (default to undefined) +let simsession_number: number; //The main event is 0; the preceding event is -1, and so on. (default to undefined) +let cust_id: number; //Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team\'s drivers will be included. (optional) (default to undefined) +let team_id: number; //Required if the subsession was a team event. (optional) (default to undefined) + +const { status, data } = await apiInstance.getResultsLapData( + subsession_id, + simsession_number, + cust_id, + team_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | [**number**] | | defaults to undefined| +| **simsession_number** | [**number**] | The main event is 0; the preceding event is -1, and so on. | defaults to undefined| +| **cust_id** | [**number**] | Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team\'s drivers will be included. | (optional) defaults to undefined| +| **team_id** | [**number**] | Required if the subsession was a team event. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsLapDataDocs** +> IracingServiceMethodDocs getResultsLapDataDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsLapDataDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSearchHosted** +> IracingAPIResponse getResultsSearchHosted() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +let start_range_begin: string; //Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) (default to undefined) +let start_range_end: string; //ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. (optional) (default to undefined) +let finish_range_begin: string; //Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) (default to undefined) +let finish_range_end: string; //ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. (optional) (default to undefined) +let cust_id: number; //The participant\'s customer ID. Ignored if team_id is supplied. (optional) (default to undefined) +let team_id: number; //The team ID to search for. Takes priority over cust_id if both are supplied. (optional) (default to undefined) +let host_cust_id: number; //The host\'s customer ID. (optional) (default to undefined) +let session_name: string; //Part or all of the session\'s name. (optional) (default to undefined) +let league_id: number; //Include only results for the league with this ID. (optional) (default to undefined) +let league_season_id: number; //Include only results for the league season with this ID. (optional) (default to undefined) +let car_id: number; //One of the cars used by the session. (optional) (default to undefined) +let track_id: number; //The ID of the track used by the session. (optional) (default to undefined) +let category_ids: Array; //Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) (default to undefined) + +const { status, data } = await apiInstance.getResultsSearchHosted( + start_range_begin, + start_range_end, + finish_range_begin, + finish_range_end, + cust_id, + team_id, + host_cust_id, + session_name, + league_id, + league_season_id, + car_id, + track_id, + category_ids +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **start_range_begin** | [**string**] | Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | (optional) defaults to undefined| +| **start_range_end** | [**string**] | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. | (optional) defaults to undefined| +| **finish_range_begin** | [**string**] | Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | (optional) defaults to undefined| +| **finish_range_end** | [**string**] | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. | (optional) defaults to undefined| +| **cust_id** | [**number**] | The participant\'s customer ID. Ignored if team_id is supplied. | (optional) defaults to undefined| +| **team_id** | [**number**] | The team ID to search for. Takes priority over cust_id if both are supplied. | (optional) defaults to undefined| +| **host_cust_id** | [**number**] | The host\'s customer ID. | (optional) defaults to undefined| +| **session_name** | [**string**] | Part or all of the session\'s name. | (optional) defaults to undefined| +| **league_id** | [**number**] | Include only results for the league with this ID. | (optional) defaults to undefined| +| **league_season_id** | [**number**] | Include only results for the league season with this ID. | (optional) defaults to undefined| +| **car_id** | [**number**] | One of the cars used by the session. | (optional) defaults to undefined| +| **track_id** | [**number**] | The ID of the track used by the session. | (optional) defaults to undefined| +| **category_ids** | **Array<number>** | Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSearchHostedDocs** +> IracingServiceMethodDocs getResultsSearchHostedDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsSearchHostedDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSearchSeries** +> IracingAPIResponse getResultsSearchSeries() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +let season_year: number; //Required when using season_quarter. (optional) (default to undefined) +let season_quarter: number; //Required when using season_year. (optional) (default to undefined) +let start_range_begin: string; //Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) (default to undefined) +let start_range_end: string; //ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. (optional) (default to undefined) +let finish_range_begin: string; //Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) (default to undefined) +let finish_range_end: string; //ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. (optional) (default to undefined) +let cust_id: number; //Include only sessions in which this customer participated. Ignored if team_id is supplied. (optional) (default to undefined) +let team_id: number; //Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. (optional) (default to undefined) +let series_id: number; //Include only sessions for series with this ID. (optional) (default to undefined) +let race_week_num: number; //Include only sessions with this race week number. (optional) (default to undefined) +let official_only: boolean; //If true, include only sessions earning championship points. Defaults to all. (optional) (default to undefined) +let event_types: Array; //Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) (default to undefined) +let category_ids: Array; //License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) (default to undefined) + +const { status, data } = await apiInstance.getResultsSearchSeries( + season_year, + season_quarter, + start_range_begin, + start_range_end, + finish_range_begin, + finish_range_end, + cust_id, + team_id, + series_id, + race_week_num, + official_only, + event_types, + category_ids +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_year** | [**number**] | Required when using season_quarter. | (optional) defaults to undefined| +| **season_quarter** | [**number**] | Required when using season_year. | (optional) defaults to undefined| +| **start_range_begin** | [**string**] | Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | (optional) defaults to undefined| +| **start_range_end** | [**string**] | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. | (optional) defaults to undefined| +| **finish_range_begin** | [**string**] | Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | (optional) defaults to undefined| +| **finish_range_end** | [**string**] | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. | (optional) defaults to undefined| +| **cust_id** | [**number**] | Include only sessions in which this customer participated. Ignored if team_id is supplied. | (optional) defaults to undefined| +| **team_id** | [**number**] | Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. | (optional) defaults to undefined| +| **series_id** | [**number**] | Include only sessions for series with this ID. | (optional) defaults to undefined| +| **race_week_num** | [**number**] | Include only sessions with this race week number. | (optional) defaults to undefined| +| **official_only** | [**boolean**] | If true, include only sessions earning championship points. Defaults to all. | (optional) defaults to undefined| +| **event_types** | **Array<number>** | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | (optional) defaults to undefined| +| **category_ids** | **Array<number>** | License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSearchSeriesDocs** +> IracingServiceMethodDocs getResultsSearchSeriesDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsSearchSeriesDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSeasonResults** +> IracingAPIResponse getResultsSeasonResults() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +let season_id: number; // (default to undefined) +let event_type: IracingEventType; //Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) + +const { status, data } = await apiInstance.getResultsSeasonResults( + season_id, + event_type, + race_week_num +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **event_type** | **IracingEventType** | Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getResultsSeasonResultsDocs** +> IracingServiceMethodDocs getResultsSeasonResultsDocs() + + +### Example + +```typescript +import { + ResultsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new ResultsApi(configuration); + +const { status, data } = await apiInstance.getResultsSeasonResultsDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/SeasonApi.md b/packages/api-client/src/client/docs/SeasonApi.md new file mode 100644 index 0000000..9dc9899 --- /dev/null +++ b/packages/api-client/src/client/docs/SeasonApi.md @@ -0,0 +1,346 @@ +# SeasonApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**dataDocSeasonSpectatorSubsessionidsDetailGet**](#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | | +|[**dataDocSeasonSpectatorSubsessionidsGet**](#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | | +|[**getSeasonDocs**](#getseasondocs) | **GET** /data/doc/season | | +|[**getSeasonList**](#getseasonlist) | **GET** /data/season/list | | +|[**getSeasonListDocs**](#getseasonlistdocs) | **GET** /data/doc/season/list | | +|[**getSeasonRaceGuide**](#getseasonraceguide) | **GET** /data/season/race_guide | | +|[**getSeasonRaceGuideDocs**](#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | | + +# **dataDocSeasonSpectatorSubsessionidsDetailGet** +> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsDetailGet() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsDetailGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeasonSpectatorSubsessionidsGet** +> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsGet() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonDocs** +> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +const { status, data } = await apiInstance.getSeasonDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonList** +> IracingAPIResponse getSeasonList() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +let season_year: number; // (default to undefined) +let season_quarter: number; // (default to undefined) + +const { status, data } = await apiInstance.getSeasonList( + season_year, + season_quarter +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_year** | [**number**] | | defaults to undefined| +| **season_quarter** | [**number**] | | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonListDocs** +> IracingServiceMethodDocs getSeasonListDocs() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +const { status, data } = await apiInstance.getSeasonListDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonRaceGuide** +> IracingAPIResponse getSeasonRaceGuide() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +let from: string; //ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. (optional) (default to undefined) +let include_end_after_from: boolean; //Include sessions which start before \'from\' but end after. (optional) (default to undefined) + +const { status, data } = await apiInstance.getSeasonRaceGuide( + from, + include_end_after_from +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **from** | [**string**] | ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. | (optional) defaults to undefined| +| **include_end_after_from** | [**boolean**] | Include sessions which start before \'from\' but end after. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonRaceGuideDocs** +> IracingServiceMethodDocs getSeasonRaceGuideDocs() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +const { status, data } = await apiInstance.getSeasonRaceGuideDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/SeriesApi.md b/packages/api-client/src/client/docs/SeriesApi.md new file mode 100644 index 0000000..6af309f --- /dev/null +++ b/packages/api-client/src/client/docs/SeriesApi.md @@ -0,0 +1,736 @@ +# SeriesApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**dataDocSeriesAssetsGet**](#datadocseriesassetsget) | **GET** /data/doc/series/assets | | +|[**dataDocSeriesGet**](#datadocseriesget) | **GET** /data/doc/series | | +|[**dataDocSeriesGetGet**](#datadocseriesgetget) | **GET** /data/doc/series/get | | +|[**dataDocSeriesPastSeasonsGet**](#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | | +|[**dataDocSeriesSeasonListGet**](#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | | +|[**dataDocSeriesSeasonScheduleGet**](#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | | +|[**dataDocSeriesSeasonsGet**](#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | | +|[**dataDocSeriesStatsSeriesGet**](#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | | +|[**getSeries**](#getseries) | **GET** /data/series/get | | +|[**getSeriesAssets**](#getseriesassets) | **GET** /data/series/assets | | +|[**getSeriesPastSeasons**](#getseriespastseasons) | **GET** /data/series/past_seasons | | +|[**getSeriesSeasonList**](#getseriesseasonlist) | **GET** /data/series/season_list | | +|[**getSeriesSeasonSchedule**](#getseriesseasonschedule) | **GET** /data/series/season_schedule | | +|[**getSeriesSeasons**](#getseriesseasons) | **GET** /data/series/seasons | | +|[**getSeriesStatsSeries**](#getseriesstatsseries) | **GET** /data/series/stats_series | | + +# **dataDocSeriesAssetsGet** +> IracingServiceMethodDocs dataDocSeriesAssetsGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesAssetsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocSeriesGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesGetGet** +> IracingServiceMethodDocs dataDocSeriesGetGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesGetGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesPastSeasonsGet** +> IracingServiceMethodDocs dataDocSeriesPastSeasonsGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesPastSeasonsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesSeasonListGet** +> IracingServiceMethodDocs dataDocSeriesSeasonListGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesSeasonListGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesSeasonScheduleGet** +> IracingServiceMethodDocs dataDocSeriesSeasonScheduleGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesSeasonScheduleGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesSeasonsGet** +> IracingServiceMethodDocs dataDocSeriesSeasonsGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesSeasonsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocSeriesStatsSeriesGet** +> IracingServiceMethodDocs dataDocSeriesStatsSeriesGet() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.dataDocSeriesStatsSeriesGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeries** +> IracingAPIResponse getSeries() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.getSeries(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeriesAssets** +> IracingAPIResponse getSeriesAssets() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.getSeriesAssets(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeriesPastSeasons** +> IracingAPIResponse getSeriesPastSeasons() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +let series_id: number; // (default to undefined) + +const { status, data } = await apiInstance.getSeriesPastSeasons( + series_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **series_id** | [**number**] | | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeriesSeasonList** +> IracingAPIResponse getSeriesSeasonList() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +let include_series: boolean; // (optional) (default to undefined) +let season_year: number; // (optional) (default to undefined) +let season_quarter: number; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getSeriesSeasonList( + include_series, + season_year, + season_quarter +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **include_series** | [**boolean**] | | (optional) defaults to undefined| +| **season_year** | [**number**] | | (optional) defaults to undefined| +| **season_quarter** | [**number**] | | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeriesSeasonSchedule** +> IracingAPIResponse getSeriesSeasonSchedule() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +let season_id: number; // (default to undefined) + +const { status, data } = await apiInstance.getSeriesSeasonSchedule( + season_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeriesSeasons** +> IracingAPIResponse getSeriesSeasons() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +let include_series: boolean; // (optional) (default to undefined) +let season_year: number; //To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) (default to undefined) +let season_quarter: number; //To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) (default to undefined) + +const { status, data } = await apiInstance.getSeriesSeasons( + include_series, + season_year, + season_quarter +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **include_series** | [**boolean**] | | (optional) defaults to undefined| +| **season_year** | [**number**] | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | (optional) defaults to undefined| +| **season_quarter** | [**number**] | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeriesStatsSeries** +> IracingAPIResponse getSeriesStatsSeries() + + +### Example + +```typescript +import { + SeriesApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeriesApi(configuration); + +const { status, data } = await apiInstance.getSeriesStatsSeries(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/StatsApi.md b/packages/api-client/src/client/docs/StatsApi.md new file mode 100644 index 0000000..e5aadf4 --- /dev/null +++ b/packages/api-client/src/client/docs/StatsApi.md @@ -0,0 +1,1510 @@ +# StatsApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**dataDocStatsGet**](#datadocstatsget) | **GET** /data/doc/stats | | +|[**dataDocStatsMemberBestsGet**](#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | | +|[**dataDocStatsMemberCareerGet**](#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | | +|[**dataDocStatsMemberDivisionGet**](#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | | +|[**dataDocStatsMemberRecapGet**](#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | | +|[**dataDocStatsMemberRecentRacesGet**](#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | | +|[**dataDocStatsMemberSummaryGet**](#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | | +|[**dataDocStatsMemberYearlyGet**](#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | | +|[**dataDocStatsSeasonDriverStandingsGet**](#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | | +|[**dataDocStatsSeasonQualifyResultsGet**](#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | | +|[**dataDocStatsSeasonSupersessionStandingsGet**](#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | | +|[**dataDocStatsSeasonTeamStandingsGet**](#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | | +|[**dataDocStatsSeasonTtResultsGet**](#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | | +|[**dataDocStatsSeasonTtStandingsGet**](#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | | +|[**dataDocStatsWorldRecordsGet**](#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | | +|[**getStatsMemberBests**](#getstatsmemberbests) | **GET** /data/stats/member_bests | | +|[**getStatsMemberCareer**](#getstatsmembercareer) | **GET** /data/stats/member_career | | +|[**getStatsMemberDivision**](#getstatsmemberdivision) | **GET** /data/stats/member_division | | +|[**getStatsMemberRecap**](#getstatsmemberrecap) | **GET** /data/stats/member_recap | | +|[**getStatsMemberRecentRaces**](#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | | +|[**getStatsMemberSummary**](#getstatsmembersummary) | **GET** /data/stats/member_summary | | +|[**getStatsMemberYearly**](#getstatsmemberyearly) | **GET** /data/stats/member_yearly | | +|[**getStatsSeasonDriverStandings**](#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | | +|[**getStatsSeasonQualifyResults**](#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | | +|[**getStatsSeasonSupersessionStandings**](#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | | +|[**getStatsSeasonTeamStandings**](#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | | +|[**getStatsSeasonTimeTrialResults**](#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | | +|[**getStatsSeasonTimeTrialStandings**](#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | | +|[**getStatsWorldRecords**](#getstatsworldrecords) | **GET** /data/stats/world_records | | + +# **dataDocStatsGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocStatsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberBestsGet** +> IracingServiceMethodDocs dataDocStatsMemberBestsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberBestsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberCareerGet** +> IracingServiceMethodDocs dataDocStatsMemberCareerGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberCareerGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberDivisionGet** +> IracingServiceMethodDocs dataDocStatsMemberDivisionGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberDivisionGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberRecapGet** +> IracingServiceMethodDocs dataDocStatsMemberRecapGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberRecapGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberRecentRacesGet** +> IracingServiceMethodDocs dataDocStatsMemberRecentRacesGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberRecentRacesGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberSummaryGet** +> IracingServiceMethodDocs dataDocStatsMemberSummaryGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberSummaryGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsMemberYearlyGet** +> IracingServiceMethodDocs dataDocStatsMemberYearlyGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsMemberYearlyGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonDriverStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonDriverStandingsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonDriverStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonQualifyResultsGet** +> IracingServiceMethodDocs dataDocStatsSeasonQualifyResultsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonQualifyResultsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonSupersessionStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonSupersessionStandingsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonSupersessionStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonTeamStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonTeamStandingsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonTeamStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonTtResultsGet** +> IracingServiceMethodDocs dataDocStatsSeasonTtResultsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonTtResultsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsSeasonTtStandingsGet** +> IracingServiceMethodDocs dataDocStatsSeasonTtStandingsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsSeasonTtStandingsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocStatsWorldRecordsGet** +> IracingServiceMethodDocs dataDocStatsWorldRecordsGet() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +const { status, data } = await apiInstance.dataDocStatsWorldRecordsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsMemberBests** +> IracingAPIResponse getStatsMemberBests() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) +let car_id: number; //First call should exclude car_id; use cars_driven list in return for subsequent calls. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberBests( + cust_id, + car_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +| **car_id** | [**number**] | First call should exclude car_id; use cars_driven list in return for subsequent calls. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsMemberCareer** +> IracingAPIResponse getStatsMemberCareer() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberCareer( + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsMemberDivision** +> IracingAPIResponse getStatsMemberDivision() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let season_id: number; // (default to undefined) +let event_type: 4 | 5; //The event type code for the division type: 4 - Time Trial; 5 - Race (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberDivision( + season_id, + event_type +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **event_type** | [**4 | 5**]**Array<4 | 5>** | The event type code for the division type: 4 - Time Trial; 5 - Race | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsMemberRecap** +> IracingAPIResponse getStatsMemberRecap() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) +let year: 1 | 2 | 3 | 4; //Season year; if not supplied the current calendar year (UTC) is used. (optional) (default to undefined) +let season: number; //Season (quarter) within the year; if not supplied the recap will be for the entire year. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberRecap( + cust_id, + year, + season +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +| **year** | [**1 | 2 | 3 | 4**]**Array<1 | 2 | 3 | 4>** | Season year; if not supplied the current calendar year (UTC) is used. | (optional) defaults to undefined| +| **season** | [**number**] | Season (quarter) within the year; if not supplied the recap will be for the entire year. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsMemberRecentRaces** +> IracingAPIResponse getStatsMemberRecentRaces() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberRecentRaces( + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsMemberSummary** +> IracingAPIResponse getStatsMemberSummary() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberSummary( + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsMemberYearly** +> IracingAPIResponse getStatsMemberYearly() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberYearly( + cust_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsSeasonDriverStandings** +> IracingAPIResponse getStatsSeasonDriverStandings() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonDriverStandings( + season_id, + car_class_id, + division, + race_week_num +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsSeasonQualifyResults** +> IracingAPIResponse getStatsSeasonQualifyResults() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonQualifyResults( + season_id, + car_class_id, + race_week_num, + division +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsSeasonSupersessionStandings** +> IracingAPIResponse getStatsSeasonSupersessionStandings() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( + season_id, + car_class_id, + division, + race_week_num +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsSeasonTeamStandings** +> IracingAPIResponse getStatsSeasonTeamStandings() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonTeamStandings( + season_id, + car_class_id, + race_week_num +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsSeasonTimeTrialResults** +> IracingAPIResponse getStatsSeasonTimeTrialResults() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonTimeTrialResults( + season_id, + car_class_id, + race_week_num, + division +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsSeasonTimeTrialStandings** +> IracingAPIResponse getStatsSeasonTimeTrialStandings() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonTimeTrialStandings( + season_id, + car_class_id, + division, + race_week_num +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getStatsWorldRecords** +> IracingAPIResponse getStatsWorldRecords() + + +### Example + +```typescript +import { + StatsApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new StatsApi(configuration); + +let car_id: number; // (default to undefined) +let track_id: number; // (default to undefined) +let season_year: number; //Limit best times to a given year. (optional) (default to undefined) +let season_quarter: number; //Limit best times to a given quarter; only applicable when year is used. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsWorldRecords( + car_id, + track_id, + season_year, + season_quarter +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **car_id** | [**number**] | | defaults to undefined| +| **track_id** | [**number**] | | defaults to undefined| +| **season_year** | [**number**] | Limit best times to a given year. | (optional) defaults to undefined| +| **season_quarter** | [**number**] | Limit best times to a given quarter; only applicable when year is used. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/TeamApi.md b/packages/api-client/src/client/docs/TeamApi.md new file mode 100644 index 0000000..3b15cda --- /dev/null +++ b/packages/api-client/src/client/docs/TeamApi.md @@ -0,0 +1,246 @@ +# TeamApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getTeam**](#getteam) | **GET** /data/team/get | | +|[**getTeamDocs**](#getteamdocs) | **GET** /data/doc/team | | +|[**getTeamGetDocs**](#getteamgetdocs) | **GET** /data/doc/team/get | | +|[**getTeamMembership**](#getteammembership) | **GET** /data/team/membership | | +|[**getTeamMembershipDocs**](#getteammembershipdocs) | **GET** /data/doc/team/membership | | + +# **getTeam** +> IracingAPIResponse getTeam() + + +### Example + +```typescript +import { + TeamApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TeamApi(configuration); + +let team_id: number; // (default to undefined) +let include_licenses: boolean; //For faster responses, only request when necessary. (optional) (default to undefined) + +const { status, data } = await apiInstance.getTeam( + team_id, + include_licenses +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **team_id** | [**number**] | | defaults to undefined| +| **include_licenses** | [**boolean**] | For faster responses, only request when necessary. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamDocs** +> { [key: string]: IracingServiceMethodDocs; } getTeamDocs() + + +### Example + +```typescript +import { + TeamApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TeamApi(configuration); + +const { status, data } = await apiInstance.getTeamDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamGetDocs** +> IracingServiceMethodDocs getTeamGetDocs() + + +### Example + +```typescript +import { + TeamApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TeamApi(configuration); + +const { status, data } = await apiInstance.getTeamGetDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamMembership** +> IracingAPIResponse getTeamMembership() + + +### Example + +```typescript +import { + TeamApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TeamApi(configuration); + +const { status, data } = await apiInstance.getTeamMembership(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamMembershipDocs** +> IracingServiceMethodDocs getTeamMembershipDocs() + + +### Example + +```typescript +import { + TeamApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TeamApi(configuration); + +const { status, data } = await apiInstance.getTeamMembershipDocs(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/TimeAttackApi.md b/packages/api-client/src/client/docs/TimeAttackApi.md new file mode 100644 index 0000000..39ce529 --- /dev/null +++ b/packages/api-client/src/client/docs/TimeAttackApi.md @@ -0,0 +1,151 @@ +# TimeAttackApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**dataDocTimeAttackGet**](#datadoctimeattackget) | **GET** /data/doc/time_attack | | +|[**dataDocTimeAttackMemberSeasonResultsGet**](#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | | +|[**getTimeAttackMemberSeasonResults**](#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | | + +# **dataDocTimeAttackGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocTimeAttackGet() + + +### Example + +```typescript +import { + TimeAttackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TimeAttackApi(configuration); + +const { status, data } = await apiInstance.dataDocTimeAttackGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTimeAttackMemberSeasonResultsGet** +> IracingServiceMethodDocs dataDocTimeAttackMemberSeasonResultsGet() + + +### Example + +```typescript +import { + TimeAttackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TimeAttackApi(configuration); + +const { status, data } = await apiInstance.dataDocTimeAttackMemberSeasonResultsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTimeAttackMemberSeasonResults** +> IracingAPIResponse getTimeAttackMemberSeasonResults() + + +### Example + +```typescript +import { + TimeAttackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TimeAttackApi(configuration); + +let ta_comp_season_id: number; // (default to undefined) + +const { status, data } = await apiInstance.getTimeAttackMemberSeasonResults( + ta_comp_season_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **ta_comp_season_id** | [**number**] | | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/TrackApi.md b/packages/api-client/src/client/docs/TrackApi.md new file mode 100644 index 0000000..d5ee417 --- /dev/null +++ b/packages/api-client/src/client/docs/TrackApi.md @@ -0,0 +1,236 @@ +# TrackApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**dataDocTrackAssetsGet**](#datadoctrackassetsget) | **GET** /data/doc/track/assets | | +|[**dataDocTrackGet**](#datadoctrackget) | **GET** /data/doc/track | | +|[**dataDocTrackGetGet**](#datadoctrackgetget) | **GET** /data/doc/track/get | | +|[**getTrack**](#gettrack) | **GET** /data/track/get | | +|[**getTrackAssets**](#gettrackassets) | **GET** /data/track/assets | | + +# **dataDocTrackAssetsGet** +> IracingServiceMethodDocs dataDocTrackAssetsGet() + + +### Example + +```typescript +import { + TrackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TrackApi(configuration); + +const { status, data } = await apiInstance.dataDocTrackAssetsGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTrackGet** +> { [key: string]: IracingServiceMethodDocs; } dataDocTrackGet() + + +### Example + +```typescript +import { + TrackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TrackApi(configuration); + +const { status, data } = await apiInstance.dataDocTrackGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**{ [key: string]: IracingServiceMethodDocs; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **dataDocTrackGetGet** +> IracingServiceMethodDocs dataDocTrackGetGet() + + +### Example + +```typescript +import { + TrackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TrackApi(configuration); + +const { status, data } = await apiInstance.dataDocTrackGetGet(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingServiceMethodDocs** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | - | +|**401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTrack** +> IracingAPIResponse getTrack() + + +### Example + +```typescript +import { + TrackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TrackApi(configuration); + +const { status, data } = await apiInstance.getTrack(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTrackAssets** +> IracingAPIResponse getTrackAssets() + + +### Example + +```typescript +import { + TrackApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new TrackApi(configuration); + +const { status, data } = await apiInstance.getTrackAssets(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/git_push.sh b/packages/api-client/src/client/git_push.sh new file mode 100644 index 0000000..f53a75d --- /dev/null +++ b/packages/api-client/src/client/git_push.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 +git_host=$4 + +if [ "$git_host" = "" ]; then + git_host="github.com" + echo "[INFO] No command line input provided. Set \$git_host to $git_host" +fi + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=$(git remote) +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' diff --git a/packages/api-client/src/client/index.ts b/packages/api-client/src/client/index.ts new file mode 100644 index 0000000..4a5a14d --- /dev/null +++ b/packages/api-client/src/client/index.ts @@ -0,0 +1,18 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export * from "./api"; +export * from "./configuration"; + diff --git a/packages/api-client/src/client/package.json b/packages/api-client/src/client/package.json new file mode 100644 index 0000000..66afd9d --- /dev/null +++ b/packages/api-client/src/client/package.json @@ -0,0 +1,31 @@ +{ + "name": "@iracing-data/api-client", + "version": "0.0.1", + "description": "OpenAPI client for @iracing-data/api-client", + "author": "OpenAPI-Generator Contributors", + "repository": { + "type": "git", + "url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git" + }, + "keywords": [ + "axios", + "typescript", + "openapi-client", + "openapi-generator", + "@iracing-data/api-client" + ], + "license": "Unlicense", + "main": "./dist/index.js", + "typings": "./dist/index.d.ts", + "scripts": { + "build": "tsc", + "prepare": "npm run build" + }, + "dependencies": { + "axios": "^1.6.1" + }, + "devDependencies": { + "@types/node": "12.11.5 - 12.20.42", + "typescript": "^4.0 || ^5.0" + } +} diff --git a/packages/api-client/src/client/tsconfig.json b/packages/api-client/src/client/tsconfig.json new file mode 100644 index 0000000..d953a37 --- /dev/null +++ b/packages/api-client/src/client/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "declaration": true, + "target": "ES5", + "module": "commonjs", + "noImplicitAny": true, + "outDir": "dist", + "rootDir": ".", + "lib": [ + "es6", + "dom" + ], + "typeRoots": [ + "node_modules/@types" + ] + }, + "exclude": [ + "dist", + "node_modules" + ] +} diff --git a/packages/api-client/src/index.ts b/packages/api-client/src/index.ts new file mode 100644 index 0000000..5ec7692 --- /dev/null +++ b/packages/api-client/src/index.ts @@ -0,0 +1 @@ +export * from "./client"; diff --git a/packages/api-client/tsconfig.build.json b/packages/api-client/tsconfig.build.json new file mode 100644 index 0000000..d5eb016 --- /dev/null +++ b/packages/api-client/tsconfig.build.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noUnusedLocals": false, + "declarationMap": false, + "sourceMap": false, + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/packages/api-client/tsconfig.json b/packages/api-client/tsconfig.json new file mode 100644 index 0000000..9abc5e7 --- /dev/null +++ b/packages/api-client/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["src/*"] + } + } +} diff --git a/packages/api-router/package.json b/packages/api-router/package.json index 8d06574..daaa453 100644 --- a/packages/api-router/package.json +++ b/packages/api-router/package.json @@ -7,10 +7,8 @@ "build": "tsc --build tsconfig.build.json" }, "dependencies": { - "@iracing-data/api": "workspace:*", + "@iracing-data/api-client": "workspace:*", "@iracing-data/api-schema": "workspace:*", - "axios": "^1.7.9", - "better-call": "^1.0.26", - "zod": "^4.1.12" + "better-call": "^1.0.26" } } \ No newline at end of file diff --git a/packages/api-router/src/index.ts b/packages/api-router/src/index.ts index 92a020c..c94cc9d 100644 --- a/packages/api-router/src/index.ts +++ b/packages/api-router/src/index.ts @@ -1,5 +1,5 @@ import { createRouter as createRouterFn, RouterConfig } from "better-call"; -import { toNodeHandler as toNodeHandlerFn } from "better-call/node"; +import { toNodeHandler } from "better-call/node"; import * as routes from "./routes"; export interface CreateRouterOptions extends RouterConfig {} @@ -13,14 +13,6 @@ export function createRouter({ ...options }: CreateRouterOptions = {}) { ); } -export function createNodeHandler(options: CreateRouterOptions = {}) { - return toNodeHandler(createRouter(options)); -} - -export function toNodeHandler(router: ReturnType) { - return toNodeHandlerFn(router.handler); -} - export * from "./middleware"; -export { routes }; +export { routes, toNodeHandler }; export default createRouter; diff --git a/packages/api-router/src/middleware.ts b/packages/api-router/src/middleware.ts index 23f2a0d..66fd86d 100644 --- a/packages/api-router/src/middleware.ts +++ b/packages/api-router/src/middleware.ts @@ -1,47 +1,69 @@ -import IRacingAPIClient from "@iracing-data/api"; -import axios from "axios"; +import { + CarApi, + CarclassApi, + Configuration, + ConstantsApi, + DocApi, + DriverStatsApi, + HostedApi, + LeagueApi, + LookupApi, + MemberApi, + ResultsApi, + SeasonApi, + SeriesApi, + StatsApi, + TeamApi, + TimeAttackApi, + TrackApi, +} from "@iracing-data/api-client"; import { createMiddleware } from "better-call"; -export const sessionMiddleware = createMiddleware( - { - requireHeaders: true, - }, - async (context) => { - const accessToken = context.getHeader("X-IRACING-ACCESS-TOKEN"); - - return { - accessToken, - }; - } -); - /** * ???: Should this handle token refreshing? */ export const iracingClientMiddleware = createMiddleware( { - use: [sessionMiddleware], + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, }, - async ({ context: { accessToken } }) => { - const network = axios.create({ - baseURL: "https://members-ng.iracing.com/", - }); - - network.interceptors.request.use((config) => { - /** - * Only sign requests if an access token is provided - */ - if (accessToken) { - config.headers.Authorization = `Bearer ${accessToken}`; - } - - return config; - }); - - const iracing = new IRacingAPIClient(network); + async ({ getHeader }) => { + const accessToken = getHeader("X-IRACING-ACCESS-TOKEN"); + const config = new Configuration({ accessToken: accessToken || undefined }); return { - iracing, + iracing: { + car: new CarApi(config), + carClass: new CarclassApi(config), + constants: new ConstantsApi(config), + doc: new DocApi(config), + driverStats: new DriverStatsApi(config), + hosted: new HostedApi(config), + league: new LeagueApi(config), + lookup: new LookupApi(config), + member: new MemberApi(config), + results: new ResultsApi(config), + season: new SeasonApi(config), + series: new SeriesApi(config), + stats: new StatsApi(config), + team: new TeamApi(config), + timeAttack: new TimeAttackApi(config), + track: new TrackApi(config), + }, }; } ); diff --git a/packages/api-router/src/routes/auth/index.ts b/packages/api-router/src/routes/auth/index.ts deleted file mode 100644 index 8b1b513..0000000 --- a/packages/api-router/src/routes/auth/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { createEndpoint } from "../utils"; -import { z } from "zod"; - -const AuthInputSchema = z.object({ - username: z.string(), - hashedPassword: z.string(), -}); - -export const auth = createEndpoint( - "/auth", - { - method: "POST", - body: AuthInputSchema, - metadata: { - $Infer: { - body: {} as z.infer, - }, - }, - }, - async ({ context: { iracing }, body }) => { - return iracing.api.auth.auth(body); - } -); diff --git a/packages/api-router/src/routes/data/car-class.ts b/packages/api-router/src/routes/data/car-class.ts index b04b1b8..1271fe4 100644 --- a/packages/api-router/src/routes/data/car-class.ts +++ b/packages/api-router/src/routes/data/car-class.ts @@ -5,47 +5,9 @@ export const getCarClass = createEndpoint( { method: "GET", requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - responses: { - "200": { - description: "Success", - content: { - "application/json": { - schema: { - type: "object", - properties: { - link: { - type: "url", - description: "A link to the cached data response.", - }, - expires: { - type: "number", - description: - "Duration in seconds until the data is considered stale.", - }, - }, - }, - }, - }, - }, - }, - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.carClass.get(); + const response = await iracing.carClass.getCarClass(); return response.data; } ); diff --git a/packages/api-router/src/routes/data/car.ts b/packages/api-router/src/routes/data/car.ts index f7806c1..2713dc7 100644 --- a/packages/api-router/src/routes/data/car.ts +++ b/packages/api-router/src/routes/data/car.ts @@ -4,25 +4,9 @@ export const carAssets = createEndpoint( "/data/car/assets", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.car.assets(); + const response = await iracing.car.getCarAssets(); return response.data; } ); @@ -31,25 +15,9 @@ export const getCar = createEndpoint( "/data/car/get", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.car.get(); + const response = await iracing.car.getCar(); return response.data; } ); diff --git a/packages/api-router/src/routes/data/constants.ts b/packages/api-router/src/routes/data/constants.ts index 904c5be..30fca8d 100644 --- a/packages/api-router/src/routes/data/constants.ts +++ b/packages/api-router/src/routes/data/constants.ts @@ -4,25 +4,9 @@ export const categories = createEndpoint( "/data/constants/categories", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.constants.categories(); + const response = await iracing.constants.getConstantsCategories(); return response.data; } ); @@ -31,25 +15,9 @@ export const divisions = createEndpoint( "/data/constants/divisions", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.constants.divisions(); + const response = await iracing.constants.getConstantsDivisions(); return response.data; } ); @@ -58,25 +26,9 @@ export const eventTypes = createEndpoint( "/data/constants/event_types", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.constants.eventTypes(); + const response = await iracing.constants.getConstantsEventTypes(); return response.data; } ); diff --git a/packages/api-router/src/routes/data/doc.ts b/packages/api-router/src/routes/data/doc.ts new file mode 100644 index 0000000..17a0a06 --- /dev/null +++ b/packages/api-router/src/routes/data/doc.ts @@ -0,0 +1,12 @@ +import { createEndpoint } from "../utils"; + +export const getDoc = createEndpoint( + "/data/doc", + { + method: "GET", + }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getDocs(); + return response.data; + } +); diff --git a/packages/api-router/src/routes/data/driver-stats.ts b/packages/api-router/src/routes/data/driver-stats.ts index 35d094b..be95fc7 100644 --- a/packages/api-router/src/routes/data/driver-stats.ts +++ b/packages/api-router/src/routes/data/driver-stats.ts @@ -1,39 +1,15 @@ +import { IRacingDriverStatsByCategoryPathSchema } from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const category = createEndpoint( "/data/driver_stats_by_category/:category", { method: "GET", requireHeaders: true, - query: z.object({ - category: z.union([ - z.literal("oval"), - z.literal("road"), - z.literal("dirt_road"), - z.literal("dirt_oval"), - z.literal("sports_car"), - z.literal("formula_car"), - ]), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingDriverStatsByCategoryPathSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.driverStats.category(query); + const response = await iracing.driverStats.getDriverStatsByCategory(query); return response.data; } ); diff --git a/packages/api-router/src/routes/data/hosted.ts b/packages/api-router/src/routes/data/hosted.ts index 0401461..6ed721a 100644 --- a/packages/api-router/src/routes/data/hosted.ts +++ b/packages/api-router/src/routes/data/hosted.ts @@ -1,32 +1,14 @@ +import { IRacingHostedCombinedSessionsParametersSchema } from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const combinedSessions = createEndpoint( "/data/hosted/combined_sessions", { method: "GET", - requireHeaders: true, - query: z.object({ - packageId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingHostedCombinedSessionsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.hosted.combinedSessions(query); + const response = await iracing.hosted.getHostedCombinedSessions(query); return response.data; } ); @@ -35,25 +17,9 @@ export const sessions = createEndpoint( "/data/hosted/sessions", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.hosted.sessions(); + const response = await iracing.hosted.getHostedSessions(); return response.data; } ); diff --git a/packages/api-router/src/routes/data/index.ts b/packages/api-router/src/routes/data/index.ts index 1448c8a..01d58b5 100644 --- a/packages/api-router/src/routes/data/index.ts +++ b/packages/api-router/src/routes/data/index.ts @@ -1,6 +1,7 @@ export * from "./car"; export * from "./car-class"; export * from "./constants"; +export * from "./doc"; export * from "./driver-stats"; export * from "./hosted"; export * from "./league"; diff --git a/packages/api-router/src/routes/data/league.ts b/packages/api-router/src/routes/data/league.ts index c2b9192..c5ab455 100644 --- a/packages/api-router/src/routes/data/league.ts +++ b/packages/api-router/src/routes/data/league.ts @@ -1,49 +1,25 @@ +import { + IRacingLeagueCustomerSessionsParametersSchema, + IRacingLeagueDirectoryParametersSchema, + IRacingLeagueGetParametersSchema, + IRacingLeagueGetPointsSystemsParametersSchema, + IRacingLeagueMembershipParametersSchema, + IRacingLeagueRosterParametersSchema, + IRacingLeagueSeasonSessionsParametersSchema, + IRacingLeagueSeasonsParametersSchema, + IRacingLeagueSeasonStandingsParametersSchema, +} from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const directory = createEndpoint( "/data/league/directory", { method: "GET", - requireHeaders: true, - query: z.object({ - search: z.string().optional(), - tag: z.string().optional(), - restrictToMember: z.boolean().optional(), - restrictToRecruiting: z.boolean().optional(), - restrictToFriends: z.boolean().optional(), - restrictToWatched: z.boolean().optional(), - minimumRosterCount: z.number().optional(), - maximumRosterCount: z.number().optional(), - lowerbound: z.number().optional(), - upperbound: z.number().optional(), - sort: z - .union([ - z.literal("relevance"), - z.literal("leaguename"), - z.literal("displayname"), - ]) - .optional(), - order: z.union([z.literal("asc"), z.literal("desc")]), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueDirectoryParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.directory(query); + const response = await iracing.league.getLeagueDirectory(query); + return response.data; } ); @@ -51,29 +27,12 @@ export const customerLeagueSessions = createEndpoint( "/data/league/cust_league_sessions", { method: "GET", - requireHeaders: true, - query: z.object({ - mine: z.boolean().optional(), - packageId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueCustomerSessionsParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.customerLeagueSessions(query); + const response = + await iracing.league.getLeagueCustomerLeagueSessions(query); + return response.data; } ); @@ -81,59 +40,23 @@ export const getLeague = createEndpoint( "/data/league/get", { method: "GET", - requireHeaders: true, - query: z.object({ - leagueId: z.number(), - includeLicenses: z.boolean().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueGetParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.get(query); + const response = await iracing.league.getLeague(query); + return response.data; } ); -export const getPointsSystem = createEndpoint( +export const getPointsSystems = createEndpoint( "/data/league/get_points_systems", { method: "GET", - requireHeaders: true, - query: z.object({ - leagueId: z.number(), - seasonId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueGetPointsSystemsParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.getPointsSystems(query); + const response = await iracing.league.getLeaguePointsSystems(query); + return response.data; } ); @@ -141,29 +64,11 @@ export const leagueMembership = createEndpoint( "/data/league/membership", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.number().optional(), - includeLeague: z.boolean().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueMembershipParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.membership(query); + const response = await iracing.league.getLeagueMembership(query); + return response.data; } ); @@ -171,29 +76,11 @@ export const leagueRoster = createEndpoint( "/data/league/roster", { method: "GET", - requireHeaders: true, - query: z.object({ - leagueId: z.number(), - includeLicenses: z.boolean().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueRosterParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.roster(query); + const response = await iracing.league.getLeagueRoster(query); + return response.data; } ); @@ -201,29 +88,11 @@ export const leagueSeasons = createEndpoint( "/data/league/seasons", { method: "GET", - requireHeaders: true, - query: z.object({ - leagueId: z.number(), - retired: z.boolean().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueSeasonsParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.seasons(query); + const response = await iracing.league.getLeagueSeasons(query); + return response.data; } ); @@ -231,31 +100,11 @@ export const seasonStandings = createEndpoint( "/data/league/season_standings", { method: "GET", - requireHeaders: true, - query: z.object({ - leagueId: z.number(), - seasonId: z.number(), - carClassId: z.number().optional(), - carId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueSeasonStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.seasonStandings(query); + const response = await iracing.league.getLeagueSeasonStandings(query); + return response.data; } ); @@ -263,29 +112,10 @@ export const seasonSessions = createEndpoint( "/data/league/season_sessions", { method: "GET", - requireHeaders: true, - query: z.object({ - leagueId: z.number(), - seasonId: z.number(), - resultsOnly: z.boolean().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLeagueSeasonSessionsParametersSchema, }, async ({ context: { iracing }, query }) => { - return iracing.api.data.league.seasonSessions(query); + const response = await iracing.league.getLeagueSeasonSessions(query); + return response.data; } ); diff --git a/packages/api-router/src/routes/data/lookup.ts b/packages/api-router/src/routes/data/lookup.ts index 409e922..45734de 100644 --- a/packages/api-router/src/routes/data/lookup.ts +++ b/packages/api-router/src/routes/data/lookup.ts @@ -1,29 +1,13 @@ +import { IRacingLookupDriversParametersSchema } from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const countries = createEndpoint( "/data/lookup/countries", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.lookup.countries(); + const response = await iracing.lookup.getLookupCountries(); return response.data; } ); @@ -32,25 +16,9 @@ export const flairs = createEndpoint( "/data/lookup/flairs", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.lookup.flairs(); + const response = await iracing.lookup.getLookupFlairs(); return response.data; } ); @@ -59,25 +27,9 @@ export const licenses = createEndpoint( "/data/lookup/licenses", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.lookup.licenses(); + const response = await iracing.lookup.getLookupLicenses(); return response.data; } ); @@ -86,29 +38,10 @@ export const drivers = createEndpoint( "/data/lookup/drivers", { method: "GET", - requireHeaders: true, - query: z.object({ - searchTerm: z.string(), - leagueId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingLookupDriversParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.lookup.drivers(query); + const response = await iracing.lookup.getLookupDrivers(query); return response.data; } ); @@ -118,25 +51,9 @@ export const getLookup = createEndpoint( { method: "GET", requireHeaders: true, - query: z.record(z.string(), z.string()), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.lookup.get(query); + const response = await iracing.lookup.getLookup(); return response.data; } ); diff --git a/packages/api-router/src/routes/data/member.ts b/packages/api-router/src/routes/data/member.ts index e038d94..3f21ebe 100644 --- a/packages/api-router/src/routes/data/member.ts +++ b/packages/api-router/src/routes/data/member.ts @@ -1,32 +1,21 @@ import { createEndpoint } from "../utils"; -import { z } from "zod"; +import { + IRacingMemberAwardInstancesParametersSchema, + IRacingMemberAwardsParametersSchema, + IRacingMemberChartDataParametersSchema, + IRacingMemberGetParametersSchema, + IRacingMemberProfileParametersSchema, +} from "@iracing-data/api-schema"; export const awards = createEndpoint( "/data/member/awards", { method: "GET", requireHeaders: true, - query: z.object({ - customerId: z.coerce.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingMemberAwardsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.member.awards(query); + const response = await iracing.member.getMemberAwards(query); return response.data; } ); @@ -36,79 +25,45 @@ export const awardInstances = createEndpoint( { method: "GET", requireHeaders: true, - query: z.object({ - customerId: z.coerce.number().optional(), - awardId: z.number(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingMemberAwardInstancesParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.member.awardInstances(query); + const response = await iracing.member.getMemberAwardInstances(query); return response.data; } ); -// export const chartData = createEndpoint( -// "/data/member/chart_data", -// { -// method: "GET", -// requireHeaders: true, -// query: z.object({ -// customerId: z.coerce.number().optional(), -// categoryId: CategoryIdValueSchema, -// chartType: ChartTypeValueSchema, -// }), -// }, -// async ({ context: { iracing }, query }) => { -// return iracing.api.data.member.chartData(query); -// } -// ); +export const chartData = createEndpoint( + "/data/member/chart_data", + { + method: "GET", + query: IRacingMemberChartDataParametersSchema, + }, + async ({ context: { iracing }, query }) => { + const response = await iracing.member.getMemberChartData(query); + return response.data; + } +); -// export const getMember = createEndpoint( -// "/data/member/get", -// { method: "GET" }, -// async ({ context: { iracing }, query }) => { -// return iracing.api.data.member.get(query); -// } -// ); +export const getMember = createEndpoint( + "/data/member/get", + { + method: "GET", + query: IRacingMemberGetParametersSchema, + }, + async ({ context: { iracing }, query }) => { + const response = await iracing.member.getMember(query); + return response.data; + } +); export const info = createEndpoint( "/data/member/info", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.member.info(); + const response = await iracing.member.getMemberInfo(); return response.data; } ); @@ -117,7 +72,7 @@ export const participationCredits = createEndpoint( "/data/member/participation_credits", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.member.participationCredits(); + const response = await iracing.member.getMemberParticipationCredits(); return response.data; } ); @@ -126,28 +81,10 @@ export const profile = createEndpoint( "/data/member/profile", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.coerce.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingMemberProfileParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.member.profile(query); + const response = await iracing.member.getMemberProfile(query); return response.data; } ); diff --git a/packages/api-router/src/routes/data/season.ts b/packages/api-router/src/routes/data/season.ts index 1d431d0..b84e37a 100644 --- a/packages/api-router/src/routes/data/season.ts +++ b/packages/api-router/src/routes/data/season.ts @@ -1,33 +1,17 @@ +import { + IRacingSeasonListParametersSchema, + IRacingSeasonRaceGuideParametersSchema, +} from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const list = createEndpoint( "/data/season/list", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonYear: z.number(), - seasonQuarter: z.number(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingSeasonListParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.season.list(query); + const response = await iracing.season.getSeasonList(query); return response.data; } ); @@ -36,29 +20,10 @@ export const raceGuide = createEndpoint( "/data/season/race_guide", { method: "GET", - requireHeaders: true, - query: z.object({ - from: z.date(), - includeEndAfterFrom: z.boolean().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingSeasonRaceGuideParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.season.raceGuide(query); + const response = await iracing.season.getSeasonRaceGuide(query); return response.data; } ); diff --git a/packages/api-router/src/routes/data/series.ts b/packages/api-router/src/routes/data/series.ts index 95464f5..5f64e1d 100644 --- a/packages/api-router/src/routes/data/series.ts +++ b/packages/api-router/src/routes/data/series.ts @@ -1,29 +1,18 @@ +import { + IRacingSeriesPastSeasonsParametersSchema, + IRacingSeriesSeasonListParametersSchema, + IRacingSeriesSeasonScheduleParametersSchema, + IRacingSeriesSeasonsParametersSchema, +} from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const seriesAssets = createEndpoint( "/data/series/assets", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.series.assets(); + const response = await iracing.series.getSeriesAssets(); return response.data; } ); @@ -32,25 +21,9 @@ export const getSeries = createEndpoint( "/data/series/get", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.series.get(); + const response = await iracing.series.getSeries(); return response.data; } ); @@ -59,28 +32,10 @@ export const pastSeasons = createEndpoint( "/data/series/past_seasons", { method: "GET", - requireHeaders: true, - query: z.object({ - seriesId: z.number(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingSeriesPastSeasonsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.series.pastSeasons(query); + const response = await iracing.series.getSeriesPastSeasons(query); return response.data; } ); @@ -89,30 +44,10 @@ export const seasons = createEndpoint( "/data/series/seasons", { method: "GET", - requireHeaders: true, - query: z.object({ - includeSeries: z.boolean().optional(), - seasonYear: z.number().optional(), - seasonQuarter: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingSeriesSeasonsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.series.seasons(query); + const response = await iracing.series.getSeriesSeasons(query); return response.data; } ); @@ -121,30 +56,10 @@ export const seasonList = createEndpoint( "/data/series/season_list", { method: "GET", - requireHeaders: true, - query: z.object({ - includeSeries: z.boolean().optional(), - seasonYear: z.number().optional(), - seasonQuarter: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingSeriesSeasonListParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.series.seasonList(query); + const response = await iracing.series.getSeriesSeasonList(query); return response.data; } ); @@ -153,28 +68,10 @@ export const seasonSchedule = createEndpoint( "/data/series/season_schedule", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingSeriesSeasonScheduleParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.series.seasonSchedule(query); + const response = await iracing.series.getSeriesSeasonSchedule(query); return response.data; } ); @@ -183,25 +80,9 @@ export const statsSeries = createEndpoint( "/data/series/stats_series", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.series.statsSeries(); + const response = await iracing.series.getSeriesStatsSeries(); return response.data; } ); diff --git a/packages/api-router/src/routes/data/stats.ts b/packages/api-router/src/routes/data/stats.ts index e10f3e3..7b8c5f6 100644 --- a/packages/api-router/src/routes/data/stats.ts +++ b/packages/api-router/src/routes/data/stats.ts @@ -1,34 +1,29 @@ -import { IRacingDivisionSchema } from "@iracing-data/api-schema"; +import { + IRacingStatsMemberBestsParametersSchema, + IRacingStatsMemberCareerParametersSchema, + IRacingStatsMemberDivisionParametersSchema, + IRacingStatsMemberRecapParametersSchema, + IRacingStatsMemberRecentRacesParametersSchema, + IRacingStatsMemberSummaryParametersSchema, + IRacingStatsMemberYearlyParametersSchema, + IRacingStatsSeasonDriverStandingsParametersSchema, + IRacingStatsSeasonQualifyResultsParametersSchema, + IRacingStatsSeasonSupersessionStandingsParametersSchema, + IRacingStatsSeasonTeamStandingsParametersSchema, + IRacingStatsSeasonTTResultsParametersSchema, + IRacingStatsSeasonTTStandingsParametersSchema, + IRacingStatsWorldRecordsParametersSchema, +} from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const memberBests = createEndpoint( "/data/stats/member_bests", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.number().optional(), - carId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsMemberBestsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.memberBests(query); + const response = await iracing.stats.getStatsMemberBests(query); return response.data; } ); @@ -37,28 +32,10 @@ export const memberCareer = createEndpoint( "/data/stats/member_career", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsMemberCareerParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.memberCareer(query); + const response = await iracing.stats.getStatsMemberCareer(query); return response.data; } ); @@ -67,29 +44,10 @@ export const memberDivision = createEndpoint( "/data/stats/member_division", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - eventType: z.union([z.literal(4), z.literal(5)]), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsMemberDivisionParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.memberDivision(query); + const response = await iracing.stats.getStatsMemberDivision(query); return response.data; } ); @@ -98,30 +56,10 @@ export const memberRecap = createEndpoint( "/data/stats/member_recap", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.number().optional(), - year: z.number().optional(), - season: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsMemberRecapParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.memberRecap(query); + const response = await iracing.stats.getStatsMemberRecap(query); return response.data; } ); @@ -130,28 +68,10 @@ export const memberRecentRaces = createEndpoint( "/data/stats/member_recent_races", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsMemberRecentRacesParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.memberRecentRaces(query); + const response = await iracing.stats.getStatsMemberRecentRaces(query); return response.data; } ); @@ -160,28 +80,10 @@ export const memberSummary = createEndpoint( "/data/stats/member_summary", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsMemberSummaryParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.memberSummary(query); + const response = await iracing.stats.getStatsMemberSummary(query); return response.data; } ); @@ -190,28 +92,10 @@ export const memberYearly = createEndpoint( "/data/stats/member_yearly", { method: "GET", - requireHeaders: true, - query: z.object({ - customerId: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsMemberYearlyParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.memberYearly(query); + const response = await iracing.stats.getStatsMemberYearly(query); return response.data; } ); @@ -220,31 +104,10 @@ export const seasonDriverStandings = createEndpoint( "/data/stats/season_driver_standings", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - carClassId: z.number(), - raceWeekNumber: z.number().optional(), - division: IRacingDivisionSchema.optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsSeasonDriverStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.seasonDriverStandings(query); + const response = await iracing.stats.getStatsSeasonDriverStandings(query); return response.data; } ); @@ -253,32 +116,11 @@ export const seasonSupersessionStandings = createEndpoint( "/data/stats/season_supersession_standings", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - carClassId: z.number(), - raceWeekNumber: z.number().optional(), - division: IRacingDivisionSchema.optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsSeasonSupersessionStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { const response = - await iracing.api.data.stats.seasonSupersessionStandings(query); + await iracing.stats.getStatsSeasonSupersessionStandings(query); return response.data; } ); @@ -287,30 +129,10 @@ export const seasonTeamStandings = createEndpoint( "/data/stats/season_team_standings", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - carClassId: z.number(), - raceWeekNumber: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsSeasonTeamStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.seasonTeamStandings(query); + const response = await iracing.stats.getStatsSeasonTeamStandings(query); return response.data; } ); @@ -319,32 +141,11 @@ export const seasonTimeTrialStandings = createEndpoint( "/data/stats/season_time_trial_standings", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - carClassId: z.number(), - raceWeekNumber: z.number().optional(), - division: IRacingDivisionSchema.optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsSeasonTTStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { const response = - await iracing.api.data.stats.seasonTimeTrialStandings(query); + await iracing.stats.getStatsSeasonTimeTrialStandings(query); return response.data; } ); @@ -353,31 +154,10 @@ export const seasonTimeTrialResults = createEndpoint( "/data/stats/season_time_trial_results", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - carClassId: z.number(), - raceWeekNumber: z.number(), - division: IRacingDivisionSchema.optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsSeasonTTResultsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.seasonTimeTrialResults(query); + const response = await iracing.stats.getStatsSeasonTimeTrialResults(query); return response.data; } ); @@ -386,31 +166,10 @@ export const seasonQualifyResults = createEndpoint( "/data/stats/season_qualify_results", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - carClassId: z.number(), - raceWeekNumber: z.number(), - division: IRacingDivisionSchema.optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsSeasonQualifyResultsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.seasonQualifyResults(query); + const response = await iracing.stats.getStatsSeasonQualifyResults(query); return response.data; } ); @@ -419,31 +178,10 @@ export const worldRecords = createEndpoint( "/data/stats/world_records", { method: "GET", - requireHeaders: true, - query: z.object({ - carId: z.number(), - trackId: z.number(), - seasonYear: z.number().optional(), - seasonQuarter: z.number().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingStatsWorldRecordsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.stats.worldRecords(query); + const response = await iracing.stats.getStatsWorldRecords(query); return response.data; } ); diff --git a/packages/api-router/src/routes/data/team.ts b/packages/api-router/src/routes/data/team.ts index 875f864..388a0ee 100644 --- a/packages/api-router/src/routes/data/team.ts +++ b/packages/api-router/src/routes/data/team.ts @@ -1,33 +1,14 @@ +import { IRacingTeamGetParametersSchema } from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const getTeam = createEndpoint( "/data/team/get", { method: "GET", - requireHeaders: true, - query: z.object({ - teamId: z.number(), - includeLicenses: z.boolean().optional(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingTeamGetParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.api.data.team.get(query); + const response = await iracing.team.getTeam(query); return response.data; } ); @@ -36,25 +17,9 @@ export const membership = createEndpoint( "/data/team/membership", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.team.membership(); + const response = await iracing.team.getTeamMembership(); return response.data; } ); diff --git a/packages/api-router/src/routes/data/time-attack.ts b/packages/api-router/src/routes/data/time-attack.ts index e55e80e..d0c60da 100644 --- a/packages/api-router/src/routes/data/time-attack.ts +++ b/packages/api-router/src/routes/data/time-attack.ts @@ -1,33 +1,15 @@ +import { IRacingTimeAttackMemberSeasonResultsParametersSchema } from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; -import { z } from "zod"; export const memberSeasonResults = createEndpoint( "/data/time_attack/member_season_results", { method: "GET", - requireHeaders: true, - query: z.object({ - seasonId: z.number(), - }), - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, + query: IRacingTimeAttackMemberSeasonResultsParametersSchema, }, async ({ context: { iracing }, query }) => { const response = - await iracing.api.data.timeAttack.memberSeasonResults(query); + await iracing.timeAttack.getTimeAttackMemberSeasonResults(query); return response.data; } ); diff --git a/packages/api-router/src/routes/data/track.ts b/packages/api-router/src/routes/data/track.ts index 72cbe6d..aa948ec 100644 --- a/packages/api-router/src/routes/data/track.ts +++ b/packages/api-router/src/routes/data/track.ts @@ -4,25 +4,9 @@ export const trackAssets = createEndpoint( "/data/track/assets", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.track.assets(); + const response = await iracing.track.getTrackAssets(); return response.data; } ); @@ -31,25 +15,9 @@ export const getTrack = createEndpoint( "/data/track/get", { method: "GET", - requireHeaders: true, - metadata: { - openapi: { - parameters: [ - { - in: "header", - name: "X-IRACING-ACCESS-TOKEN", - schema: { - type: "string", - }, - required: true, - description: "The JWT token to sign the request with.", - }, - ], - }, - }, }, async ({ context: { iracing } }) => { - const response = await iracing.api.data.track.get(); + const response = await iracing.track.getTrack(); return response.data; } ); diff --git a/packages/api-router/src/routes/index.ts b/packages/api-router/src/routes/index.ts index 4e1b31a..ff7ba27 100644 --- a/packages/api-router/src/routes/index.ts +++ b/packages/api-router/src/routes/index.ts @@ -1,2 +1 @@ -export * from "./auth"; export * from "./data"; diff --git a/packages/api-schema/src/schema.ts b/packages/api-schema/src/schema.ts index 5fdff10..741360c 100644 --- a/packages/api-schema/src/schema.ts +++ b/packages/api-schema/src/schema.ts @@ -702,27 +702,45 @@ export const IRacingTimeAttackMemberSeasonResultsParametersSchema = z.object({ ta_comp_season_id: z.number(), }); -export const IRacingParametersDocsResponseSchema = z.object({ - type: z.string(), - note: z.string().optional(), - required: z.boolean().optional(), -}); +export const IRacingServiceMethodParametersDocsResponseSchema = z + .object({ + type: z.string(), + note: z.string().optional(), + required: z.boolean().optional(), + }) + .meta({ + description: "An iRacing API Service Method Parameters object.", + id: "iracingServiceMethodParametersDocs", + }); -export const IRacingServiceMethodDocsResponseSchema = z.object({ - link: z.url(), - parameters: z.record(z.string(), IRacingParametersDocsResponseSchema), - expirationSeconds: z.number().optional(), -}); +export const IRacingServiceMethodDocsResponseSchema = z + .object({ + link: z.url(), + parameters: z.record( + z.string(), + IRacingServiceMethodParametersDocsResponseSchema + ), + expirationSeconds: z.number().optional(), + }) + .meta({ + description: "An iRacing API Service Method object.", + id: "iracingServiceMethodDocs", + }); -export const IRacingServiceDocsResponseSchema = z.record( - z.string(), - IRacingServiceMethodDocsResponseSchema -); +export const IRacingServiceDocsResponseSchema = z + .record(z.string(), IRacingServiceMethodDocsResponseSchema) + .meta({ + description: + "An index of service methods available for the requested service.", + id: "iracingServiceDocs", + }); -export const IRacingServicesDocsResponseSchema = z.record( - z.string(), - IRacingServiceDocsResponseSchema -); +export const IRacingServicesDocsResponseSchema = z + .record(z.string(), IRacingServiceDocsResponseSchema) + .meta({ + description: "An index of available services on the iRacing API.", + id: "iracingServicesDocs", + }); /** * Types @@ -913,8 +931,8 @@ export type IRacingTeamGetParameters = z.infer< export type IRacingTimeAttackMemberSeasonResultsParameters = z.infer< typeof IRacingTimeAttackMemberSeasonResultsParametersSchema >; -export type IRacingParametersDocsResponse = z.infer< - typeof IRacingParametersDocsResponseSchema +export type IRacingServiceMethodParametersDocsResponse = z.infer< + typeof IRacingServiceMethodParametersDocsResponseSchema >; export type IRacingServiceMethodDocsResponse = z.infer< typeof IRacingServiceMethodDocsResponseSchema diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index e780565..16ca58a 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -359,62 +359,9 @@ export async function generateOpenAPISpec({ }, }, }, - "/data/doc/driver_stats_by_category/oval": { - get: { - tags: ["doc", "driver_stats"], - responses: { - 200: { $ref: "#/components/responses/ServiceMethodDocs" }, - 401: { $ref: "#/components/responses/Unauthorized" }, - }, - }, - }, - "/data/doc/driver_stats_by_category/sports_car": { - get: { - tags: ["doc", "driver_stats"], - responses: { - 200: { $ref: "#/components/responses/ServiceMethodDocs" }, - 401: { $ref: "#/components/responses/Unauthorized" }, - }, - }, - }, - "/data/doc/driver_stats_by_category/formula_car": { - get: { - tags: ["doc", "driver_stats"], - responses: { - 200: { $ref: "#/components/responses/ServiceMethodDocs" }, - 401: { $ref: "#/components/responses/Unauthorized" }, - }, - }, - }, - "/data/doc/driver_stats_by_category/road": { - get: { - tags: ["doc", "driver_stats"], - responses: { - 200: { $ref: "#/components/responses/ServiceMethodDocs" }, - 401: { $ref: "#/components/responses/Unauthorized" }, - }, - }, - }, - "/data/doc/driver_stats_by_category/dirt_oval": { - get: { - tags: ["doc", "driver_stats"], - responses: { - 200: { $ref: "#/components/responses/ServiceMethodDocs" }, - 401: { $ref: "#/components/responses/Unauthorized" }, - }, - }, - }, - "/data/doc/driver_stats_by_category/dirt_road": { - get: { - tags: ["doc", "driver_stats"], - responses: { - 200: { $ref: "#/components/responses/ServiceMethodDocs" }, - 401: { $ref: "#/components/responses/Unauthorized" }, - }, - }, - }, "/data/doc/hosted": { get: { + operationId: "getHostedDocs", tags: ["doc", "hosted"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -424,6 +371,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/hosted/combined_sessions": { get: { + operationId: "getHostedCombinedSessionsDocs", tags: ["doc", "hosted"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -433,6 +381,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/hosted/sessions": { get: { + operationId: "getHostedSessionsDocs", tags: ["doc", "hosted"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -442,6 +391,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league": { get: { + operationId: "getLeagueDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -451,6 +401,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/cust_league_sessions": { get: { + operationId: "getLeagueCustomerLeagueSessionsDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -460,6 +411,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/directory": { get: { + operationId: "getLeagueDirectoryDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -469,6 +421,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/get": { get: { + operationId: "getLeagueGetDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -478,6 +431,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/get_points_systems": { get: { + operationId: "getLeagueGetPointsSystemsDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -487,6 +441,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/membership": { get: { + operationId: "getLeagueMembershipDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -496,6 +451,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/roster": { get: { + operationId: "getLeagueRosterDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -505,6 +461,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/seasons": { get: { + operationId: "getLeagueSeasonsDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -514,6 +471,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/season_standings": { get: { + operationId: "getLeagueSeasonStandingsDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -523,6 +481,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/league/season_sessions": { get: { + operationId: "getLeagueSeasonSessionsDocs", tags: ["doc", "league"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -532,6 +491,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/lookup": { get: { + operationId: "getLookupDocs", tags: ["doc", "lookup"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -541,6 +501,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/lookup/countries": { get: { + operationId: "getLookupCountriesDocs", tags: ["doc", "lookup"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -550,6 +511,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/lookup/drivers": { get: { + operationId: "getLookupDriversDocs", tags: ["doc", "lookup"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -559,6 +521,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/lookup/flairs": { get: { + operationId: "getLookupFlairsDocs", tags: ["doc", "lookup"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -568,6 +531,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/lookup/get": { get: { + operationId: "getLookupGetDocs", tags: ["doc", "lookup"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -577,6 +541,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/lookup/licenses": { get: { + operationId: "getLookupLicensesDocs", tags: ["doc", "lookup"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -586,6 +551,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member": { get: { + operationId: "getMemberDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -595,6 +561,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member/awards": { get: { + operationId: "getMemberAwardsDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -604,6 +571,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member/award_instances": { get: { + operationId: "getMemberAwardInstancesDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -613,6 +581,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member/chart_data": { get: { + operationId: "getMemberChartDataDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -622,6 +591,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member/get": { get: { + operationId: "getMemberGetDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -631,6 +601,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member/info": { get: { + operationId: "getMemberInfoDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -640,6 +611,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member/participation_credits": { get: { + operationId: "getMemberParticipationCreditsDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -649,6 +621,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/member/profile": { get: { + operationId: "getMemberProfileDocs", tags: ["doc", "member"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -658,6 +631,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results": { get: { + operationId: "getResultsDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -667,6 +641,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results/get": { get: { + operationId: "getResultsGetDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -676,6 +651,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results/event_log": { get: { + operationId: "getResultsEventLogDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -685,6 +661,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results/lap_chart_data": { get: { + operationId: "getResultsLapChartDataDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -694,6 +671,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results/lap_data": { get: { + operationId: "getResultsLapDataDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -703,6 +681,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results/search_hosted": { get: { + operationId: "getResultsSearchHostedDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -712,6 +691,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results/search_series": { get: { + operationId: "getResultsSearchSeriesDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -721,6 +701,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/results/season_results": { get: { + operationId: "getResultsSeasonResultsDocs", tags: ["doc", "results"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -730,6 +711,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/season": { get: { + operationId: "getSeasonDocs", tags: ["doc", "season"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -739,6 +721,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/season/list": { get: { + operationId: "getSeasonListDocs", tags: ["doc", "season"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -748,6 +731,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/season/race_guide": { get: { + operationId: "getSeasonRaceGuideDocs", tags: ["doc", "season"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -982,6 +966,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/team": { get: { + operationId: "getTeamDocs", tags: ["doc", "team"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -991,6 +976,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/team/get": { get: { + operationId: "getTeamGetDocs", tags: ["doc", "team"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -1000,6 +986,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/team/membership": { get: { + operationId: "getTeamMembershipDocs", tags: ["doc", "team"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -1057,6 +1044,9 @@ export async function generateOpenAPISpec({ operationId: "getCarClass", summary: "Gets car classes.", tags: ["carclass"], + externalDocs: { + url: "/data/doc/carclass/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1071,6 +1061,9 @@ export async function generateOpenAPISpec({ description: "image paths are relative to https://images-static.iracing.com/", tags: ["car"], + externalDocs: { + url: "/data/doc/car/assets", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1913,6 +1906,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsWorldRecordsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/world_records", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1928,6 +1924,9 @@ export async function generateOpenAPISpec({ query: IRacingTeamGetParametersSchema, }, tags: ["team"], + externalDocs: { + url: "/data/doc/team/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1940,6 +1939,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getTeamMembership", tags: ["team"], + externalDocs: { + url: "/data/doc/team/membership", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1955,6 +1957,9 @@ export async function generateOpenAPISpec({ query: IRacingTimeAttackMemberSeasonResultsParametersSchema, }, tags: ["time_attack"], + externalDocs: { + url: "/data/doc/time_attack/member_season_results", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1967,6 +1972,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getTrackAssets", tags: ["track"], + externalDocs: { + url: "/data/doc/track/assets", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1979,6 +1987,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getTrack", tags: ["track"], + externalDocs: { + url: "/data/doc/track/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85debb0..761904b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -265,21 +265,15 @@ importers: packages/api-router: dependencies: - '@iracing-data/api': + '@iracing-data/api-client': specifier: workspace:* - version: link:../api + version: link:../api-client '@iracing-data/api-schema': specifier: workspace:* version: link:../api-schema - axios: - specifier: ^1.7.9 - version: 1.8.2 better-call: specifier: ^1.0.26 version: 1.0.26 - zod: - specifier: ^4.1.12 - version: 4.1.12 packages/api-schema: dependencies: From aa3ed685c8bdda57281b795ef2e9aab238d68063 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:25:36 -0500 Subject: [PATCH 13/28] add external docs --- .../api-schema-to-openapi/src/index.ts | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index 16ca58a..0409b30 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -1076,6 +1076,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getCar", tags: ["car"], + externalDocs: { + url: "/data/doc/car/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1089,6 +1092,9 @@ export async function generateOpenAPISpec({ operationId: "getConstantsCategories", description: "Constant; returned directly as an array of objects", tags: ["constants"], + externalDocs: { + url: "/data/doc/constants/categories", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1102,6 +1108,9 @@ export async function generateOpenAPISpec({ operationId: "getConstantsDivisions", description: "Constant; returned directly as an array of objects", tags: ["constants"], + externalDocs: { + url: "/data/doc/constants/divisions", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1115,6 +1124,9 @@ export async function generateOpenAPISpec({ operationId: "getConstantsEventTypes", description: "Constant; returned directly as an array of objects", tags: ["constants"], + externalDocs: { + url: "/data/doc/constants/event_types", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1130,6 +1142,9 @@ export async function generateOpenAPISpec({ path: IRacingDriverStatsByCategoryPathSchema, }, tags: ["driver_stats"], + externalDocs: { + url: "/data/doc/driver_stats_by_category/{category}", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1147,6 +1162,9 @@ export async function generateOpenAPISpec({ query: IRacingHostedCombinedSessionsParametersSchema, }, tags: ["hosted"], + externalDocs: { + url: "/data/doc/hosted/combined_sessions", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1161,6 +1179,9 @@ export async function generateOpenAPISpec({ description: "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", tags: ["hosted"], + externalDocs: { + url: "/data/doc/hosted/sessions", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1176,6 +1197,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueCustomerSessionsParametersSchema, }, + externalDocs: { + url: "/data/doc/league/cust_league_sessions", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1191,6 +1215,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueDirectoryParametersSchema, }, + externalDocs: { + url: "/data/doc/league/directory", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1206,6 +1233,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueGetParametersSchema, }, + externalDocs: { + url: "/data/doc/league/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1221,6 +1251,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueGetPointsSystemsParametersSchema, }, + externalDocs: { + url: "/data/doc/league/get_points_systems", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1236,6 +1269,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueMembershipParametersSchema, }, + externalDocs: { + url: "/data/doc/league/membership", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1251,6 +1287,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueRosterParametersSchema, }, + externalDocs: { + url: "/data/doc/league/roster", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1266,6 +1305,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueSeasonsParametersSchema, }, + externalDocs: { + url: "/data/doc/league/seasons", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1281,6 +1323,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueSeasonStandingsParametersSchema, }, + externalDocs: { + url: "/data/doc/league/season_standings", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1296,6 +1341,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingLeagueSeasonSessionsParametersSchema, }, + externalDocs: { + url: "/data/doc/league/season_sessions", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1308,6 +1356,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getLookupCountries", tags: ["lookup"], + externalDocs: { + url: "/data/doc/lookup/countries", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1320,6 +1371,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getLookupFlairs", tags: ["lookup"], + externalDocs: { + url: "/data/doc/lookup/flairs", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1332,6 +1386,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getLookupLicenses", tags: ["lookup"], + externalDocs: { + url: "/data/doc/lookup/licenses", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1347,6 +1404,9 @@ export async function generateOpenAPISpec({ query: IRacingLookupDriversParametersSchema, }, tags: ["lookup"], + externalDocs: { + url: "/data/doc/lookup/drivers", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1362,6 +1422,9 @@ export async function generateOpenAPISpec({ // query: z.record(z.string(), z.string()), // }, tags: ["lookup"], + externalDocs: { + url: "/data/doc/lookup/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1377,6 +1440,9 @@ export async function generateOpenAPISpec({ query: IRacingMemberAwardsParametersSchema, }, tags: ["member"], + externalDocs: { + url: "/data/doc/member/awards", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1392,6 +1458,9 @@ export async function generateOpenAPISpec({ query: IRacingMemberAwardInstancesParametersSchema, }, tags: ["member"], + externalDocs: { + url: "/data/doc/member/award_instances", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1407,6 +1476,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingMemberChartDataParametersSchema, }, + externalDocs: { + url: "/data/doc/member/chart_data", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1437,6 +1509,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getMemberInfo", tags: ["member"], + externalDocs: { + url: "/data/doc/member/info", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1449,6 +1524,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getMemberParticipationCredits", tags: ["member"], + externalDocs: { + url: "/data/doc/member/participation_credits", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1465,6 +1543,9 @@ export async function generateOpenAPISpec({ query: IRacingMemberProfileParametersSchema, }, tags: ["member"], + externalDocs: { + url: "/data/doc/member/profile", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1480,6 +1561,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingResultsGetParametersSchema, }, + externalDocs: { + url: "/data/doc/results/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1495,6 +1579,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingResultsEventLogParametersSchema, }, + externalDocs: { + url: "/data/doc/results/event_log", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1510,6 +1597,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingResultsLapChartDataParametersSchema, }, + externalDocs: { + url: "/data/doc/results/lap_chart_data", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1525,6 +1615,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingResultsLapDataParametersSchema, }, + externalDocs: { + url: "/data/doc/results/lap_data", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1540,6 +1633,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingResultsSearchHostedParametersSchema, }, + externalDocs: { + url: "/data/doc/results/search_hosted", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1555,6 +1651,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingResultsSearchSeriesParametersSchema, }, + externalDocs: { + url: "/data/doc/results/search_series", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1570,6 +1669,9 @@ export async function generateOpenAPISpec({ requestParams: { query: IRacingResultsSeasonResultsParametersSchema, }, + externalDocs: { + url: "/data/doc/results/season_results", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1585,6 +1687,9 @@ export async function generateOpenAPISpec({ query: IRacingSeasonListParametersSchema, }, tags: ["season"], + externalDocs: { + url: "/data/doc/season/list", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1600,6 +1705,9 @@ export async function generateOpenAPISpec({ query: IRacingSeasonRaceGuideParametersSchema, }, tags: ["season"], + externalDocs: { + url: "/data/doc/season/race_guide", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1612,6 +1720,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getSeriesAssets", tags: ["series"], + externalDocs: { + url: "/data/doc/series/assets", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1624,6 +1735,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getSeries", tags: ["series"], + externalDocs: { + url: "/data/doc/series/get", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1639,6 +1753,9 @@ export async function generateOpenAPISpec({ query: IRacingSeriesPastSeasonsParametersSchema, }, tags: ["series"], + externalDocs: { + url: "/data/doc/series/past_seasons", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1654,6 +1771,9 @@ export async function generateOpenAPISpec({ query: IRacingSeriesSeasonsParametersSchema, }, tags: ["series"], + externalDocs: { + url: "/data/doc/series/seasons", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1669,6 +1789,9 @@ export async function generateOpenAPISpec({ query: IRacingSeriesSeasonListParametersSchema, }, tags: ["series"], + externalDocs: { + url: "/data/doc/series/season_list", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1684,6 +1807,9 @@ export async function generateOpenAPISpec({ query: IRacingSeriesSeasonScheduleParametersSchema, }, tags: ["series"], + externalDocs: { + url: "/data/doc/series/season_schedule", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1696,6 +1822,9 @@ export async function generateOpenAPISpec({ get: { operationId: "getSeriesStatsSeries", tags: ["series"], + externalDocs: { + url: "/data/doc/series/stats_series", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1711,6 +1840,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsMemberBestsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/member_bests", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1726,6 +1858,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsMemberCareerParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/member_career", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1741,6 +1876,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsMemberDivisionParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/member_division", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1756,6 +1894,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsMemberRecapParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/member_recap", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1771,6 +1912,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsMemberRecentRacesParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/member_recent_races", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1786,6 +1930,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsMemberSummaryParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/member_summary", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1801,6 +1948,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsMemberYearlyParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/member_yearly", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1816,6 +1966,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsSeasonDriverStandingsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/season_driver_standings", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1831,6 +1984,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsSeasonSupersessionStandingsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/season_supersession_standings", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1846,6 +2002,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsSeasonTeamStandingsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/season_team_standings", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1861,6 +2020,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsSeasonTTStandingsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/season_time_trial_standings", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1876,6 +2038,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsSeasonTTResultsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/season_time_trial_results", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, @@ -1891,6 +2056,9 @@ export async function generateOpenAPISpec({ query: IRacingStatsSeasonQualifyResultsParametersSchema, }, tags: ["stats"], + externalDocs: { + url: "/data/doc/stats/season_qualify_results", + }, responses: { 200: { $ref: "#/components/responses/Success" }, 429: { $ref: "#/components/responses/RateLimited" }, From 0a88a9eec06e1c223badd49593610c8db237565e Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:57:06 -0500 Subject: [PATCH 14/28] Add documentation --- examples/oauth-example/src/index.ts | 3 +- examples/oauth-example/src/middleware.ts | 31 +- packages/api-client/openapi/openapi.json | 2 +- packages/api-client/src/client/README.md | 120 +- packages/api-client/src/client/api.ts | 3106 ++++++++--------- packages/api-client/src/client/docs/DocApi.md | 630 ++-- .../api-client/src/client/docs/SeasonApi.md | 98 +- .../api-client/src/client/docs/SeriesApi.md | 230 +- .../api-client/src/client/docs/StatsApi.md | 554 +-- .../src/client/docs/TimeAttackApi.md | 52 +- .../api-client/src/client/docs/TrackApi.md | 60 +- packages/api-router/src/routes/data/doc.ts | 744 ++++ .../api-schema-to-openapi/src/index.ts | 30 + 13 files changed, 3229 insertions(+), 2431 deletions(-) diff --git a/examples/oauth-example/src/index.ts b/examples/oauth-example/src/index.ts index 075a0cf..2b8b9ad 100644 --- a/examples/oauth-example/src/index.ts +++ b/examples/oauth-example/src/index.ts @@ -16,8 +16,7 @@ const iracingRouter = createRouter({ }); const app = express(); -app.use(express.json()); -app.use(express.urlencoded({ extended: true }), cookieParser()); +app.use(express.json(), express.urlencoded({ extended: true }), cookieParser()); app.get("/", getIRacingSession, (req: IRacingSessionRequest, res) => { res diff --git a/examples/oauth-example/src/middleware.ts b/examples/oauth-example/src/middleware.ts index 55eb872..9f6c742 100644 --- a/examples/oauth-example/src/middleware.ts +++ b/examples/oauth-example/src/middleware.ts @@ -1,4 +1,3 @@ -import { Configuration } from "@iracing-data/api-client"; import { Request, Response, NextFunction } from "express"; import { jwtDecode } from "jwt-decode"; import oauthClient from "./oauth-client"; @@ -55,12 +54,38 @@ export async function getIRacingSession( next(); } -export function setIRacingSessionHeader(req, res, next) { +export async function setIRacingSessionHeader(req, res, next) { if (!req.get("X-IRACING-ACCESS-TOKEN") && req.cookies?.["iracing-session"]) { try { const session = JSON.parse(req.cookies["iracing-session"]); - if (session?.access_token) { + const decoded = jwtDecode(session.access_token); + const exp = + typeof decoded.exp === "number" + ? decoded.exp + : parseInt(decoded.exp || "0", 10); + + // access token still valid + if (exp && Date.now() / 1000 < exp) { req.headers["x-iracing-access-token"] = session.access_token; + return next(); + } + + // try to refresh if we have a refresh token + if (session.refresh_token) { + try { + const newSession = await oauthClient.refresh(session.refresh_token); + + res.cookie("iracing-session", JSON.stringify(newSession), { + httpOnly: true, + secure: true, + }); + + req.headers["x-iracing-access-token"] = newSession.access_token; + return next(); + } catch { + res.clearCookie("iracing-session"); + return next(); + } } } catch { // ignore cookie parse errors diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json index 1b1a030..3100a30 100644 --- a/packages/api-client/openapi/openapi.json +++ b/packages/api-client/openapi/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"externalDocs":{"url":"/data/doc","description":"Find more information on available services here. Requires authentication."},"security":[{"bearerAuth":[]}],"tags":[{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/data/doc":{"get":{"operationId":"getDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/Docs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"operationId":"getCarClassDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"operationId":"getCarClassGetDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"operationId":"getCarDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"operationId":"getCarAssetsDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"operationId":"getCarGetDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"operationId":"getConstantsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"operationId":"getConstantsCategoriesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"operationId":"getConstantsDivisionsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"operationId":"getConstantsEventTypesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"operationId":"getDriverStatsByCategoryDocs","tags":["doc","driver_stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategoryCategoryDocs","tags":["doc","driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"operationId":"getHostedDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"operationId":"getHostedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"operationId":"getLeagueDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"operationId":"getLeagueDirectoryDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"operationId":"getLeagueGetDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"operationId":"getLeagueGetPointsSystemsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"operationId":"getLeagueMembershipDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"operationId":"getLeagueRosterDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"operationId":"getLeagueSeasonsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandingsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"operationId":"getLookupDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"operationId":"getLookupCountriesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"operationId":"getLookupDriversDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"operationId":"getLookupFlairsDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"operationId":"getLookupGetDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"operationId":"getLookupLicensesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"operationId":"getMemberDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"operationId":"getMemberAwardsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"operationId":"getMemberAwardInstancesDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"operationId":"getMemberChartDataDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"operationId":"getMemberGetDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"operationId":"getMemberInfoDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"operationId":"getMemberParticipationCreditsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"operationId":"getMemberProfileDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"operationId":"getResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"operationId":"getResultsGetDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"operationId":"getResultsEventLogDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"operationId":"getResultsLapDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"operationId":"getResultsSearchHostedDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"operationId":"getResultsSearchSeriesDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"operationId":"getResultsSeasonResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"operationId":"getSeasonDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"operationId":"getSeasonListDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"operationId":"getSeasonRaceGuideDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"operationId":"getTeamDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"operationId":"getTeamGetDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"operationId":"getTeamMembershipDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"externalDocs":{"url":"/data/doc/carclass/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"operationId":"getCarAssets","description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"externalDocs":{"url":"/data/doc/car/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"operationId":"getCar","tags":["car"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"operationId":"getConstantsCategories","description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"operationId":"getConstantsDivisions","description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"operationId":"getConstantsEventTypes","description":"Constant; returned directly as an array of objects","tags":["constants"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategory","tags":["driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessions","description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"operationId":"getHostedSessions","description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessions","tags":["league"],"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"operationId":"getLeagueDirectory","tags":["league"],"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"operationId":"getLeague","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"operationId":"getLeaguePointsSystems","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"operationId":"getLeagueMembership","tags":["league"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"operationId":"getLeagueRoster","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"operationId":"getLeagueSeasons","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandings","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessions","tags":["league"],"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"operationId":"getLookupCountries","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"operationId":"getLookupFlairs","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"operationId":"getLookupLicenses","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"operationId":"getLookupDrivers","tags":["lookup"],"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"operationId":"getLookup","tags":["lookup"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"operationId":"getMemberAwards","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"operationId":"getMemberAwardInstances","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"operationId":"getMemberChartData","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","$ref":"#/components/schemas/iracingChartType"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"operationId":"getMember","tags":["member"],"externalDocs":{"url":"/data/doc/member/get"},"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"?cust_ids=2,3,4","type":"array","items":{"type":"number"}},"required":true,"description":"?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"operationId":"getMemberInfo","tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"operationId":"getMemberParticipationCredits","tags":["member"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getMemberProfile","summary":"Gets a requested user's profile.","tags":["member"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"operationId":"getResults","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"operationId":"getResultsEventLog","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartData","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"operationId":"getResultsLapData","tags":["results"],"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"operationId":"getResultsSearchHosted","tags":["results"],"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"operationId":"getResultsSearchSeries","tags":["results"],"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"type":"number"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"operationId":"getResultsSeasonResults","tags":["results"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"operationId":"getSeasonList","tags":["season"],"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"operationId":"getSeasonRaceGuide","tags":["season"],"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"operationId":"getSeriesAssets","tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"operationId":"getSeries","tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasons","tags":["series"],"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"operationId":"getSeriesSeasons","tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"operationId":"getSeriesSeasonList","tags":["series"],"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"operationId":"getSeriesSeasonSchedule","tags":["series"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"operationId":"getSeriesStatsSeries","tags":["series"],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"operationId":"getStatsMemberBests","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"operationId":"getStatsMemberCareer","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"operationId":"getStatsMemberDivision","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"operationId":"getStatsMemberRecap","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRaces","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"operationId":"getStatsMemberSummary","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearly","tags":["stats"],"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"operationId":"getStatsSeasonTimeTrialStandings","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"operationId":"getStatsSeasonTimeTrialResults","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResults","tags":["stats"],"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"operationId":"getStatsWorldRecords","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/world_records"},"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"operationId":"getTeam","tags":["team"],"externalDocs":{"url":"/data/doc/team/get"},"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"operationId":"getTeamMembership","tags":["team"],"externalDocs":{"url":"/data/doc/team/membership"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResults","tags":["time_attack"],"externalDocs":{"url":"/data/doc/time_attack/member_season_results"},"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"operationId":"getTrackAssets","tags":["track"],"externalDocs":{"url":"/data/doc/track/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"operationId":"getTrack","tags":["track"],"externalDocs":{"url":"/data/doc/track/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingChartType":{"description":"iRacing Chart Type","anyOf":[{"description":"iRating","type":"number","const":1},{"description":"Time trial rating","type":"number","const":2},{"description":"License rating","type":"number","const":3}]},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false},"iracingServicesDocs":{"description":"An index of available services on the iRacing API.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceDocs"}},"iracingServiceDocs":{"description":"An index of service methods available for the requested service.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}},"iracingServiceMethodDocs":{"description":"An iRacing API Service Method object.","type":"object","properties":{"link":{"type":"string","format":"uri"},"parameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodParametersDocs"}},"expirationSeconds":{"type":"number"}},"required":["link","parameters"],"additionalProperties":false},"iracingServiceMethodParametersDocs":{"description":"An iRacing API Service Method Parameters object.","type":"object","properties":{"type":{"type":"string"},"note":{"type":"string"},"required":{"type":"boolean"}},"required":["type"],"additionalProperties":false},"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"Docs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServicesDocs"}}}},"ServiceDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceDocs"}}}},"ServiceMethodDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file +{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"externalDocs":{"url":"/data/doc","description":"Find more information on available services here. Requires authentication."},"security":[{"bearerAuth":[]}],"tags":[{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/data/doc":{"get":{"operationId":"getDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/Docs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"operationId":"getCarClassDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"operationId":"getCarClassGetDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"operationId":"getCarDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"operationId":"getCarAssetsDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"operationId":"getCarGetDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"operationId":"getConstantsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"operationId":"getConstantsCategoriesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"operationId":"getConstantsDivisionsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"operationId":"getConstantsEventTypesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"operationId":"getDriverStatsByCategoryDocs","tags":["doc","driver_stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategoryCategoryDocs","tags":["doc","driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"operationId":"getHostedDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"operationId":"getHostedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"operationId":"getLeagueDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"operationId":"getLeagueDirectoryDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"operationId":"getLeagueGetDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"operationId":"getLeagueGetPointsSystemsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"operationId":"getLeagueMembershipDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"operationId":"getLeagueRosterDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"operationId":"getLeagueSeasonsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandingsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"operationId":"getLookupDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"operationId":"getLookupCountriesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"operationId":"getLookupDriversDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"operationId":"getLookupFlairsDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"operationId":"getLookupGetDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"operationId":"getLookupLicensesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"operationId":"getMemberDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"operationId":"getMemberAwardsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"operationId":"getMemberAwardInstancesDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"operationId":"getMemberChartDataDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"operationId":"getMemberGetDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"operationId":"getMemberInfoDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"operationId":"getMemberParticipationCreditsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"operationId":"getMemberProfileDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"operationId":"getResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"operationId":"getResultsGetDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"operationId":"getResultsEventLogDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"operationId":"getResultsLapDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"operationId":"getResultsSearchHostedDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"operationId":"getResultsSearchSeriesDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"operationId":"getResultsSeasonResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"operationId":"getSeasonDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"operationId":"getSeasonListDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"operationId":"getSeasonRaceGuideDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetailDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"operationId":"getSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"operationId":"getSeriesAssetsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"operationId":"getSeriesGetDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"operationId":"getSeriesSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"operationId":"getSeriesSeasonListDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"operationId":"getSeriesSeasonScheduleDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"operationId":"getSeriesStatsSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"operationId":"getStatsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"operationId":"getStatsMemberBestsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"operationId":"getStatsMemberCareerDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"operationId":"getStatsMemberDivisionDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"operationId":"getStatsMemberRecapDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRacesDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"operationId":"getStatsMemberSummaryDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearlyDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"operationId":"getStatsSeasonTTStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"operationId":"getStatsSeasonTTResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"operationId":"getStatsWorldRecordsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"operationId":"getTeamDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"operationId":"getTeamGetDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"operationId":"getTeamMembershipDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"operationId":"getTimeAttackDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResultsDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"operationId":"getTrackDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"operationId":"getTrackAssetsDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"operationId":"getTrackGetDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"externalDocs":{"url":"/data/doc/carclass/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"operationId":"getCarAssets","description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"externalDocs":{"url":"/data/doc/car/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"operationId":"getCar","tags":["car"],"externalDocs":{"url":"/data/doc/car/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"operationId":"getConstantsCategories","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/categories"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"operationId":"getConstantsDivisions","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/divisions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"operationId":"getConstantsEventTypes","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/event_types"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategory","tags":["driver_stats"],"externalDocs":{"url":"/data/doc/driver_stats_by_category/{category}"},"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessions","description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/combined_sessions"},"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"operationId":"getHostedSessions","description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/sessions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/cust_league_sessions"},"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"operationId":"getLeagueDirectory","tags":["league"],"externalDocs":{"url":"/data/doc/league/directory"},"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"operationId":"getLeague","tags":["league"],"externalDocs":{"url":"/data/doc/league/get"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"operationId":"getLeaguePointsSystems","tags":["league"],"externalDocs":{"url":"/data/doc/league/get_points_systems"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"operationId":"getLeagueMembership","tags":["league"],"externalDocs":{"url":"/data/doc/league/membership"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"operationId":"getLeagueRoster","tags":["league"],"externalDocs":{"url":"/data/doc/league/roster"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"operationId":"getLeagueSeasons","tags":["league"],"externalDocs":{"url":"/data/doc/league/seasons"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandings","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_standings"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_sessions"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"operationId":"getLookupCountries","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/countries"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"operationId":"getLookupFlairs","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/flairs"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"operationId":"getLookupLicenses","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/licenses"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"operationId":"getLookupDrivers","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/drivers"},"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"operationId":"getLookup","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"operationId":"getMemberAwards","tags":["member"],"externalDocs":{"url":"/data/doc/member/awards"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"operationId":"getMemberAwardInstances","tags":["member"],"externalDocs":{"url":"/data/doc/member/award_instances"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"operationId":"getMemberChartData","tags":["member"],"externalDocs":{"url":"/data/doc/member/chart_data"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","$ref":"#/components/schemas/iracingChartType"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"operationId":"getMember","tags":["member"],"externalDocs":{"url":"/data/doc/member/get"},"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"?cust_ids=2,3,4","type":"array","items":{"type":"number"}},"required":true,"description":"?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"operationId":"getMemberInfo","tags":["member"],"externalDocs":{"url":"/data/doc/member/info"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"operationId":"getMemberParticipationCredits","tags":["member"],"externalDocs":{"url":"/data/doc/member/participation_credits"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getMemberProfile","summary":"Gets a requested user's profile.","tags":["member"],"externalDocs":{"url":"/data/doc/member/profile"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"operationId":"getResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/get"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"operationId":"getResultsEventLog","tags":["results"],"externalDocs":{"url":"/data/doc/results/event_log"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_chart_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"operationId":"getResultsLapData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"operationId":"getResultsSearchHosted","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_hosted"},"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"operationId":"getResultsSearchSeries","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_series"},"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"type":"number"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"operationId":"getResultsSeasonResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/season_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"operationId":"getSeasonList","tags":["season"],"externalDocs":{"url":"/data/doc/season/list"},"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"operationId":"getSeasonRaceGuide","tags":["season"],"externalDocs":{"url":"/data/doc/season/race_guide"},"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"operationId":"getSeriesAssets","tags":["series"],"externalDocs":{"url":"/data/doc/series/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"operationId":"getSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/past_seasons"},"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"operationId":"getSeriesSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/seasons"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"operationId":"getSeriesSeasonList","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_list"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"operationId":"getSeriesSeasonSchedule","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_schedule"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"operationId":"getSeriesStatsSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/stats_series"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"operationId":"getStatsMemberBests","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_bests"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"operationId":"getStatsMemberCareer","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_career"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"operationId":"getStatsMemberDivision","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_division"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"operationId":"getStatsMemberRecap","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recap"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRaces","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recent_races"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"operationId":"getStatsMemberSummary","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_summary"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearly","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_yearly"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_driver_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_supersession_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_team_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"operationId":"getStatsSeasonTimeTrialStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"operationId":"getStatsSeasonTimeTrialResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_qualify_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"operationId":"getStatsWorldRecords","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/world_records"},"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"operationId":"getTeam","tags":["team"],"externalDocs":{"url":"/data/doc/team/get"},"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"operationId":"getTeamMembership","tags":["team"],"externalDocs":{"url":"/data/doc/team/membership"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResults","tags":["time_attack"],"externalDocs":{"url":"/data/doc/time_attack/member_season_results"},"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"operationId":"getTrackAssets","tags":["track"],"externalDocs":{"url":"/data/doc/track/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"operationId":"getTrack","tags":["track"],"externalDocs":{"url":"/data/doc/track/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingChartType":{"description":"iRacing Chart Type","anyOf":[{"description":"iRating","type":"number","const":1},{"description":"Time trial rating","type":"number","const":2},{"description":"License rating","type":"number","const":3}]},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false},"iracingServicesDocs":{"description":"An index of available services on the iRacing API.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceDocs"}},"iracingServiceDocs":{"description":"An index of service methods available for the requested service.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}},"iracingServiceMethodDocs":{"description":"An iRacing API Service Method object.","type":"object","properties":{"link":{"type":"string","format":"uri"},"parameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodParametersDocs"}},"expirationSeconds":{"type":"number"}},"required":["link","parameters"],"additionalProperties":false},"iracingServiceMethodParametersDocs":{"description":"An iRacing API Service Method Parameters object.","type":"object","properties":{"type":{"type":"string"},"note":{"type":"string"},"required":{"type":"boolean"}},"required":["type"],"additionalProperties":false},"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"Docs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServicesDocs"}}}},"ServiceDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceDocs"}}}},"ServiceMethodDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file diff --git a/packages/api-client/src/client/README.md b/packages/api-client/src/client/README.md index c165058..8d91cad 100644 --- a/packages/api-client/src/client/README.md +++ b/packages/api-client/src/client/README.md @@ -66,36 +66,6 @@ Class | Method | HTTP request | Description *ConstantsApi* | [**getConstantsDocs**](docs/ConstantsApi.md#getconstantsdocs) | **GET** /data/doc/constants | *ConstantsApi* | [**getConstantsEventTypes**](docs/ConstantsApi.md#getconstantseventtypes) | **GET** /data/constants/event_types | *ConstantsApi* | [**getConstantsEventTypesDocs**](docs/ConstantsApi.md#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | -*DocApi* | [**dataDocSeasonSpectatorSubsessionidsDetailGet**](docs/DocApi.md#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | -*DocApi* | [**dataDocSeasonSpectatorSubsessionidsGet**](docs/DocApi.md#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | -*DocApi* | [**dataDocSeriesAssetsGet**](docs/DocApi.md#datadocseriesassetsget) | **GET** /data/doc/series/assets | -*DocApi* | [**dataDocSeriesGet**](docs/DocApi.md#datadocseriesget) | **GET** /data/doc/series | -*DocApi* | [**dataDocSeriesGetGet**](docs/DocApi.md#datadocseriesgetget) | **GET** /data/doc/series/get | -*DocApi* | [**dataDocSeriesPastSeasonsGet**](docs/DocApi.md#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | -*DocApi* | [**dataDocSeriesSeasonListGet**](docs/DocApi.md#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | -*DocApi* | [**dataDocSeriesSeasonScheduleGet**](docs/DocApi.md#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | -*DocApi* | [**dataDocSeriesSeasonsGet**](docs/DocApi.md#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | -*DocApi* | [**dataDocSeriesStatsSeriesGet**](docs/DocApi.md#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | -*DocApi* | [**dataDocStatsGet**](docs/DocApi.md#datadocstatsget) | **GET** /data/doc/stats | -*DocApi* | [**dataDocStatsMemberBestsGet**](docs/DocApi.md#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | -*DocApi* | [**dataDocStatsMemberCareerGet**](docs/DocApi.md#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | -*DocApi* | [**dataDocStatsMemberDivisionGet**](docs/DocApi.md#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | -*DocApi* | [**dataDocStatsMemberRecapGet**](docs/DocApi.md#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | -*DocApi* | [**dataDocStatsMemberRecentRacesGet**](docs/DocApi.md#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | -*DocApi* | [**dataDocStatsMemberSummaryGet**](docs/DocApi.md#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | -*DocApi* | [**dataDocStatsMemberYearlyGet**](docs/DocApi.md#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | -*DocApi* | [**dataDocStatsSeasonDriverStandingsGet**](docs/DocApi.md#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | -*DocApi* | [**dataDocStatsSeasonQualifyResultsGet**](docs/DocApi.md#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | -*DocApi* | [**dataDocStatsSeasonSupersessionStandingsGet**](docs/DocApi.md#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | -*DocApi* | [**dataDocStatsSeasonTeamStandingsGet**](docs/DocApi.md#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | -*DocApi* | [**dataDocStatsSeasonTtResultsGet**](docs/DocApi.md#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | -*DocApi* | [**dataDocStatsSeasonTtStandingsGet**](docs/DocApi.md#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | -*DocApi* | [**dataDocStatsWorldRecordsGet**](docs/DocApi.md#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | -*DocApi* | [**dataDocTimeAttackGet**](docs/DocApi.md#datadoctimeattackget) | **GET** /data/doc/time_attack | -*DocApi* | [**dataDocTimeAttackMemberSeasonResultsGet**](docs/DocApi.md#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | -*DocApi* | [**dataDocTrackAssetsGet**](docs/DocApi.md#datadoctrackassetsget) | **GET** /data/doc/track/assets | -*DocApi* | [**dataDocTrackGet**](docs/DocApi.md#datadoctrackget) | **GET** /data/doc/track | -*DocApi* | [**dataDocTrackGetGet**](docs/DocApi.md#datadoctrackgetget) | **GET** /data/doc/track/get | *DocApi* | [**getCarAssetsDocs**](docs/DocApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | *DocApi* | [**getCarClassDocs**](docs/DocApi.md#getcarclassdocs) | **GET** /data/doc/carclass | *DocApi* | [**getCarClassGetDocs**](docs/DocApi.md#getcarclassgetdocs) | **GET** /data/doc/carclass/get | @@ -146,9 +116,39 @@ Class | Method | HTTP request | Description *DocApi* | [**getSeasonDocs**](docs/DocApi.md#getseasondocs) | **GET** /data/doc/season | *DocApi* | [**getSeasonListDocs**](docs/DocApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | *DocApi* | [**getSeasonRaceGuideDocs**](docs/DocApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | +*DocApi* | [**getSeasonSpectatorSubsessionIdsDetailDocs**](docs/DocApi.md#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | +*DocApi* | [**getSeasonSpectatorSubsessionIdsDocs**](docs/DocApi.md#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | +*DocApi* | [**getSeriesAssetsDocs**](docs/DocApi.md#getseriesassetsdocs) | **GET** /data/doc/series/assets | +*DocApi* | [**getSeriesDocs**](docs/DocApi.md#getseriesdocs) | **GET** /data/doc/series | +*DocApi* | [**getSeriesGetDocs**](docs/DocApi.md#getseriesgetdocs) | **GET** /data/doc/series/get | +*DocApi* | [**getSeriesPastSeasonsDocs**](docs/DocApi.md#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | +*DocApi* | [**getSeriesSeasonListDocs**](docs/DocApi.md#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | +*DocApi* | [**getSeriesSeasonScheduleDocs**](docs/DocApi.md#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | +*DocApi* | [**getSeriesSeasonsDocs**](docs/DocApi.md#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | +*DocApi* | [**getSeriesStatsSeriesDocs**](docs/DocApi.md#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | +*DocApi* | [**getStatsDocs**](docs/DocApi.md#getstatsdocs) | **GET** /data/doc/stats | +*DocApi* | [**getStatsMemberBestsDocs**](docs/DocApi.md#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | +*DocApi* | [**getStatsMemberCareerDocs**](docs/DocApi.md#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | +*DocApi* | [**getStatsMemberDivisionDocs**](docs/DocApi.md#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | +*DocApi* | [**getStatsMemberRecapDocs**](docs/DocApi.md#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | +*DocApi* | [**getStatsMemberRecentRacesDocs**](docs/DocApi.md#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | +*DocApi* | [**getStatsMemberSummaryDocs**](docs/DocApi.md#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | +*DocApi* | [**getStatsMemberYearlyDocs**](docs/DocApi.md#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | +*DocApi* | [**getStatsSeasonDriverStandingsDocs**](docs/DocApi.md#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | +*DocApi* | [**getStatsSeasonQualifyResultsDocs**](docs/DocApi.md#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | +*DocApi* | [**getStatsSeasonSupersessionStandingsDocs**](docs/DocApi.md#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | +*DocApi* | [**getStatsSeasonTTResultsDocs**](docs/DocApi.md#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | +*DocApi* | [**getStatsSeasonTTStandingsDocs**](docs/DocApi.md#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | +*DocApi* | [**getStatsSeasonTeamStandingsDocs**](docs/DocApi.md#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | +*DocApi* | [**getStatsWorldRecordsDocs**](docs/DocApi.md#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | *DocApi* | [**getTeamDocs**](docs/DocApi.md#getteamdocs) | **GET** /data/doc/team | *DocApi* | [**getTeamGetDocs**](docs/DocApi.md#getteamgetdocs) | **GET** /data/doc/team/get | *DocApi* | [**getTeamMembershipDocs**](docs/DocApi.md#getteammembershipdocs) | **GET** /data/doc/team/membership | +*DocApi* | [**getTimeAttackDocs**](docs/DocApi.md#gettimeattackdocs) | **GET** /data/doc/time_attack | +*DocApi* | [**getTimeAttackMemberSeasonResultsDocs**](docs/DocApi.md#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | +*DocApi* | [**getTrackAssetsDocs**](docs/DocApi.md#gettrackassetsdocs) | **GET** /data/doc/track/assets | +*DocApi* | [**getTrackDocs**](docs/DocApi.md#gettrackdocs) | **GET** /data/doc/track | +*DocApi* | [**getTrackGetDocs**](docs/DocApi.md#gettrackgetdocs) | **GET** /data/doc/track/get | *DriverStatsApi* | [**getDriverStatsByCategory**](docs/DriverStatsApi.md#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | *DriverStatsApi* | [**getDriverStatsByCategoryCategoryDocs**](docs/DriverStatsApi.md#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | *DriverStatsApi* | [**getDriverStatsByCategoryDocs**](docs/DriverStatsApi.md#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | @@ -217,70 +217,70 @@ Class | Method | HTTP request | Description *ResultsApi* | [**getResultsSearchSeriesDocs**](docs/ResultsApi.md#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | *ResultsApi* | [**getResultsSeasonResults**](docs/ResultsApi.md#getresultsseasonresults) | **GET** /data/results/season_results | *ResultsApi* | [**getResultsSeasonResultsDocs**](docs/ResultsApi.md#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | -*SeasonApi* | [**dataDocSeasonSpectatorSubsessionidsDetailGet**](docs/SeasonApi.md#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | -*SeasonApi* | [**dataDocSeasonSpectatorSubsessionidsGet**](docs/SeasonApi.md#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | *SeasonApi* | [**getSeasonDocs**](docs/SeasonApi.md#getseasondocs) | **GET** /data/doc/season | *SeasonApi* | [**getSeasonList**](docs/SeasonApi.md#getseasonlist) | **GET** /data/season/list | *SeasonApi* | [**getSeasonListDocs**](docs/SeasonApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | *SeasonApi* | [**getSeasonRaceGuide**](docs/SeasonApi.md#getseasonraceguide) | **GET** /data/season/race_guide | *SeasonApi* | [**getSeasonRaceGuideDocs**](docs/SeasonApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | -*SeriesApi* | [**dataDocSeriesAssetsGet**](docs/SeriesApi.md#datadocseriesassetsget) | **GET** /data/doc/series/assets | -*SeriesApi* | [**dataDocSeriesGet**](docs/SeriesApi.md#datadocseriesget) | **GET** /data/doc/series | -*SeriesApi* | [**dataDocSeriesGetGet**](docs/SeriesApi.md#datadocseriesgetget) | **GET** /data/doc/series/get | -*SeriesApi* | [**dataDocSeriesPastSeasonsGet**](docs/SeriesApi.md#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | -*SeriesApi* | [**dataDocSeriesSeasonListGet**](docs/SeriesApi.md#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | -*SeriesApi* | [**dataDocSeriesSeasonScheduleGet**](docs/SeriesApi.md#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | -*SeriesApi* | [**dataDocSeriesSeasonsGet**](docs/SeriesApi.md#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | -*SeriesApi* | [**dataDocSeriesStatsSeriesGet**](docs/SeriesApi.md#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | +*SeasonApi* | [**getSeasonSpectatorSubsessionIdsDetailDocs**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | +*SeasonApi* | [**getSeasonSpectatorSubsessionIdsDocs**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | *SeriesApi* | [**getSeries**](docs/SeriesApi.md#getseries) | **GET** /data/series/get | *SeriesApi* | [**getSeriesAssets**](docs/SeriesApi.md#getseriesassets) | **GET** /data/series/assets | +*SeriesApi* | [**getSeriesAssetsDocs**](docs/SeriesApi.md#getseriesassetsdocs) | **GET** /data/doc/series/assets | +*SeriesApi* | [**getSeriesDocs**](docs/SeriesApi.md#getseriesdocs) | **GET** /data/doc/series | +*SeriesApi* | [**getSeriesGetDocs**](docs/SeriesApi.md#getseriesgetdocs) | **GET** /data/doc/series/get | *SeriesApi* | [**getSeriesPastSeasons**](docs/SeriesApi.md#getseriespastseasons) | **GET** /data/series/past_seasons | +*SeriesApi* | [**getSeriesPastSeasonsDocs**](docs/SeriesApi.md#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | *SeriesApi* | [**getSeriesSeasonList**](docs/SeriesApi.md#getseriesseasonlist) | **GET** /data/series/season_list | +*SeriesApi* | [**getSeriesSeasonListDocs**](docs/SeriesApi.md#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | *SeriesApi* | [**getSeriesSeasonSchedule**](docs/SeriesApi.md#getseriesseasonschedule) | **GET** /data/series/season_schedule | +*SeriesApi* | [**getSeriesSeasonScheduleDocs**](docs/SeriesApi.md#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | *SeriesApi* | [**getSeriesSeasons**](docs/SeriesApi.md#getseriesseasons) | **GET** /data/series/seasons | +*SeriesApi* | [**getSeriesSeasonsDocs**](docs/SeriesApi.md#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | *SeriesApi* | [**getSeriesStatsSeries**](docs/SeriesApi.md#getseriesstatsseries) | **GET** /data/series/stats_series | -*StatsApi* | [**dataDocStatsGet**](docs/StatsApi.md#datadocstatsget) | **GET** /data/doc/stats | -*StatsApi* | [**dataDocStatsMemberBestsGet**](docs/StatsApi.md#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | -*StatsApi* | [**dataDocStatsMemberCareerGet**](docs/StatsApi.md#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | -*StatsApi* | [**dataDocStatsMemberDivisionGet**](docs/StatsApi.md#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | -*StatsApi* | [**dataDocStatsMemberRecapGet**](docs/StatsApi.md#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | -*StatsApi* | [**dataDocStatsMemberRecentRacesGet**](docs/StatsApi.md#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | -*StatsApi* | [**dataDocStatsMemberSummaryGet**](docs/StatsApi.md#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | -*StatsApi* | [**dataDocStatsMemberYearlyGet**](docs/StatsApi.md#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | -*StatsApi* | [**dataDocStatsSeasonDriverStandingsGet**](docs/StatsApi.md#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | -*StatsApi* | [**dataDocStatsSeasonQualifyResultsGet**](docs/StatsApi.md#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | -*StatsApi* | [**dataDocStatsSeasonSupersessionStandingsGet**](docs/StatsApi.md#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | -*StatsApi* | [**dataDocStatsSeasonTeamStandingsGet**](docs/StatsApi.md#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | -*StatsApi* | [**dataDocStatsSeasonTtResultsGet**](docs/StatsApi.md#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | -*StatsApi* | [**dataDocStatsSeasonTtStandingsGet**](docs/StatsApi.md#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | -*StatsApi* | [**dataDocStatsWorldRecordsGet**](docs/StatsApi.md#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | +*SeriesApi* | [**getSeriesStatsSeriesDocs**](docs/SeriesApi.md#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | +*StatsApi* | [**getStatsDocs**](docs/StatsApi.md#getstatsdocs) | **GET** /data/doc/stats | *StatsApi* | [**getStatsMemberBests**](docs/StatsApi.md#getstatsmemberbests) | **GET** /data/stats/member_bests | +*StatsApi* | [**getStatsMemberBestsDocs**](docs/StatsApi.md#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | *StatsApi* | [**getStatsMemberCareer**](docs/StatsApi.md#getstatsmembercareer) | **GET** /data/stats/member_career | +*StatsApi* | [**getStatsMemberCareerDocs**](docs/StatsApi.md#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | *StatsApi* | [**getStatsMemberDivision**](docs/StatsApi.md#getstatsmemberdivision) | **GET** /data/stats/member_division | +*StatsApi* | [**getStatsMemberDivisionDocs**](docs/StatsApi.md#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | *StatsApi* | [**getStatsMemberRecap**](docs/StatsApi.md#getstatsmemberrecap) | **GET** /data/stats/member_recap | +*StatsApi* | [**getStatsMemberRecapDocs**](docs/StatsApi.md#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | *StatsApi* | [**getStatsMemberRecentRaces**](docs/StatsApi.md#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | +*StatsApi* | [**getStatsMemberRecentRacesDocs**](docs/StatsApi.md#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | *StatsApi* | [**getStatsMemberSummary**](docs/StatsApi.md#getstatsmembersummary) | **GET** /data/stats/member_summary | +*StatsApi* | [**getStatsMemberSummaryDocs**](docs/StatsApi.md#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | *StatsApi* | [**getStatsMemberYearly**](docs/StatsApi.md#getstatsmemberyearly) | **GET** /data/stats/member_yearly | +*StatsApi* | [**getStatsMemberYearlyDocs**](docs/StatsApi.md#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | *StatsApi* | [**getStatsSeasonDriverStandings**](docs/StatsApi.md#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | +*StatsApi* | [**getStatsSeasonDriverStandingsDocs**](docs/StatsApi.md#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | *StatsApi* | [**getStatsSeasonQualifyResults**](docs/StatsApi.md#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | +*StatsApi* | [**getStatsSeasonQualifyResultsDocs**](docs/StatsApi.md#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | *StatsApi* | [**getStatsSeasonSupersessionStandings**](docs/StatsApi.md#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | +*StatsApi* | [**getStatsSeasonSupersessionStandingsDocs**](docs/StatsApi.md#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | +*StatsApi* | [**getStatsSeasonTTResultsDocs**](docs/StatsApi.md#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | +*StatsApi* | [**getStatsSeasonTTStandingsDocs**](docs/StatsApi.md#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | *StatsApi* | [**getStatsSeasonTeamStandings**](docs/StatsApi.md#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | +*StatsApi* | [**getStatsSeasonTeamStandingsDocs**](docs/StatsApi.md#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | *StatsApi* | [**getStatsSeasonTimeTrialResults**](docs/StatsApi.md#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | *StatsApi* | [**getStatsSeasonTimeTrialStandings**](docs/StatsApi.md#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | *StatsApi* | [**getStatsWorldRecords**](docs/StatsApi.md#getstatsworldrecords) | **GET** /data/stats/world_records | +*StatsApi* | [**getStatsWorldRecordsDocs**](docs/StatsApi.md#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | *TeamApi* | [**getTeam**](docs/TeamApi.md#getteam) | **GET** /data/team/get | *TeamApi* | [**getTeamDocs**](docs/TeamApi.md#getteamdocs) | **GET** /data/doc/team | *TeamApi* | [**getTeamGetDocs**](docs/TeamApi.md#getteamgetdocs) | **GET** /data/doc/team/get | *TeamApi* | [**getTeamMembership**](docs/TeamApi.md#getteammembership) | **GET** /data/team/membership | *TeamApi* | [**getTeamMembershipDocs**](docs/TeamApi.md#getteammembershipdocs) | **GET** /data/doc/team/membership | -*TimeAttackApi* | [**dataDocTimeAttackGet**](docs/TimeAttackApi.md#datadoctimeattackget) | **GET** /data/doc/time_attack | -*TimeAttackApi* | [**dataDocTimeAttackMemberSeasonResultsGet**](docs/TimeAttackApi.md#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | +*TimeAttackApi* | [**getTimeAttackDocs**](docs/TimeAttackApi.md#gettimeattackdocs) | **GET** /data/doc/time_attack | *TimeAttackApi* | [**getTimeAttackMemberSeasonResults**](docs/TimeAttackApi.md#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | -*TrackApi* | [**dataDocTrackAssetsGet**](docs/TrackApi.md#datadoctrackassetsget) | **GET** /data/doc/track/assets | -*TrackApi* | [**dataDocTrackGet**](docs/TrackApi.md#datadoctrackget) | **GET** /data/doc/track | -*TrackApi* | [**dataDocTrackGetGet**](docs/TrackApi.md#datadoctrackgetget) | **GET** /data/doc/track/get | +*TimeAttackApi* | [**getTimeAttackMemberSeasonResultsDocs**](docs/TimeAttackApi.md#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | *TrackApi* | [**getTrack**](docs/TrackApi.md#gettrack) | **GET** /data/track/get | *TrackApi* | [**getTrackAssets**](docs/TrackApi.md#gettrackassets) | **GET** /data/track/assets | +*TrackApi* | [**getTrackAssetsDocs**](docs/TrackApi.md#gettrackassetsdocs) | **GET** /data/doc/track/assets | +*TrackApi* | [**getTrackDocs**](docs/TrackApi.md#gettrackdocs) | **GET** /data/doc/track | +*TrackApi* | [**getTrackGetDocs**](docs/TrackApi.md#gettrackgetdocs) | **GET** /data/doc/track/get | ### Documentation For Models diff --git a/packages/api-client/src/client/api.ts b/packages/api-client/src/client/api.ts index 8199c38..a8ca50f 100644 --- a/packages/api-client/src/client/api.ts +++ b/packages/api-client/src/client/api.ts @@ -1219,8 +1219,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsDetailGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; + getCarAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1252,8 +1252,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids`; + getCarClassDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1285,8 +1285,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/assets`; + getCarClassGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1318,8 +1318,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series`; + getCarDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1351,8 +1351,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/get`; + getCarGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1384,8 +1384,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesPastSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/past_seasons`; + getConstantsCategoriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/categories`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1417,8 +1417,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonListGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_list`; + getConstantsDivisionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/divisions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1450,8 +1450,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonScheduleGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_schedule`; + getConstantsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1483,8 +1483,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/seasons`; + getConstantsEventTypesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/event_types`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1516,8 +1516,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesStatsSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/stats_series`; + getDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1546,11 +1546,15 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) }, /** * + * @param {IracingCategory} category Racing category. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats`; + getDriverStatsByCategoryCategoryDocs: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'category' is not null or undefined + assertParamExists('getDriverStatsByCategoryCategoryDocs', 'category', category) + const localVarPath = `/data/doc/driver_stats_by_category/{category}` + .replace(`{${"category"}}`, encodeURIComponent(String(category))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1582,8 +1586,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberBestsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_bests`; + getDriverStatsByCategoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/driver_stats_by_category`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1615,8 +1619,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberCareerGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_career`; + getHostedCombinedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/combined_sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1648,8 +1652,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberDivisionGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_division`; + getHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1681,8 +1685,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecapGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recap`; + getHostedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1714,8 +1718,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecentRacesGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recent_races`; + getLeagueCustomerLeagueSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/cust_league_sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1747,8 +1751,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberSummaryGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_summary`; + getLeagueDirectoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/directory`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1780,8 +1784,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberYearlyGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_yearly`; + getLeagueDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1813,8 +1817,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonDriverStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_driver_standings`; + getLeagueGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1846,8 +1850,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonQualifyResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_qualify_results`; + getLeagueGetPointsSystemsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get_points_systems`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1879,8 +1883,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonSupersessionStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_supersession_standings`; + getLeagueMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/membership`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1912,8 +1916,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTeamStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_team_standings`; + getLeagueRosterDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/roster`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1945,8 +1949,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_results`; + getLeagueSeasonSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1978,8 +1982,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_standings`; + getLeagueSeasonStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2011,8 +2015,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsWorldRecordsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/world_records`; + getLeagueSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2044,8 +2048,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/time_attack`; + getLookupCountriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/countries`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2077,8 +2081,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackMemberSeasonResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/time_attack/member_season_results`; + getLookupDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2110,8 +2114,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/assets`; + getLookupDriversDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/drivers`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2143,8 +2147,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track`; + getLookupFlairsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/flairs`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2176,8 +2180,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/get`; + getLookupGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2209,8 +2213,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car/assets`; + getLookupLicensesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/licenses`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2242,8 +2246,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/carclass`; + getMemberAwardInstancesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/award_instances`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2275,8 +2279,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/carclass/get`; + getMemberAwardsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/awards`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2308,8 +2312,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car`; + getMemberChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/chart_data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2341,8 +2345,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car/get`; + getMemberDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2374,8 +2378,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsCategoriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/categories`; + getMemberGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2407,8 +2411,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDivisionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/divisions`; + getMemberInfoDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/info`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2440,8 +2444,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants`; + getMemberParticipationCreditsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/participation_credits`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2473,8 +2477,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsEventTypesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/event_types`; + getMemberProfileDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/profile`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2506,8 +2510,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc`; + getResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2536,15 +2540,11 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) }, /** * - * @param {IracingCategory} category Racing category. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDriverStatsByCategoryCategoryDocs: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'category' is not null or undefined - assertParamExists('getDriverStatsByCategoryCategoryDocs', 'category', category) - const localVarPath = `/data/doc/driver_stats_by_category/{category}` - .replace(`{${"category"}}`, encodeURIComponent(String(category))); + getResultsEventLogDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/event_log`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2576,8 +2576,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDriverStatsByCategoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/driver_stats_by_category`; + getResultsGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2609,8 +2609,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedCombinedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted/combined_sessions`; + getResultsLapChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_chart_data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2642,8 +2642,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted`; + getResultsLapDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2675,8 +2675,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted/sessions`; + getResultsSearchHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_hosted`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2708,8 +2708,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueCustomerLeagueSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/cust_league_sessions`; + getResultsSearchSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2741,8 +2741,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDirectoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/directory`; + getResultsSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/season_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2774,8 +2774,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league`; + getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2807,8 +2807,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/get`; + getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2840,8 +2840,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetPointsSystemsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/get_points_systems`; + getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/race_guide`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2873,8 +2873,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/membership`; + getSeasonSpectatorSubsessionIdsDetailDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2906,8 +2906,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueRosterDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/roster`; + getSeasonSpectatorSubsessionIdsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2939,8 +2939,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/season_sessions`; + getSeriesAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2972,8 +2972,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/season_standings`; + getSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3005,8 +3005,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/seasons`; + getSeriesGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3038,8 +3038,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupCountriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/countries`; + getSeriesPastSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/past_seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3071,8 +3071,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup`; + getSeriesSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3104,8 +3104,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupDriversDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/drivers`; + getSeriesSeasonScheduleDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_schedule`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3137,8 +3137,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupFlairsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/flairs`; + getSeriesSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3170,8 +3170,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/get`; + getSeriesStatsSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/stats_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3203,8 +3203,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupLicensesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/licenses`; + getStatsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3236,8 +3236,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardInstancesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/award_instances`; + getStatsMemberBestsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_bests`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3269,8 +3269,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/awards`; + getStatsMemberCareerDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_career`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3302,8 +3302,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/chart_data`; + getStatsMemberDivisionDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_division`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3335,8 +3335,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member`; + getStatsMemberRecapDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recap`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3368,8 +3368,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/get`; + getStatsMemberRecentRacesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recent_races`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3401,8 +3401,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberInfoDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/info`; + getStatsMemberSummaryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_summary`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3434,8 +3434,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberParticipationCreditsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/participation_credits`; + getStatsMemberYearlyDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_yearly`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3467,8 +3467,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberProfileDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/profile`; + getStatsSeasonDriverStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_driver_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3500,8 +3500,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results`; + getStatsSeasonQualifyResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_qualify_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3533,8 +3533,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsEventLogDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/event_log`; + getStatsSeasonSupersessionStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_supersession_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3566,8 +3566,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/get`; + getStatsSeasonTTResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3599,8 +3599,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsLapChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/lap_chart_data`; + getStatsSeasonTTStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3632,8 +3632,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsLapDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/lap_data`; + getStatsSeasonTeamStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_team_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3665,8 +3665,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/search_hosted`; + getStatsWorldRecordsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/world_records`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3698,9 +3698,9 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/search_series`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. + getTeamDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; if (configuration) { @@ -3731,8 +3731,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/season_results`; + getTeamGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3764,8 +3764,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season`; + getTeamMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/membership`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3797,8 +3797,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/list`; + getTimeAttackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3830,8 +3830,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/race_guide`; + getTimeAttackMemberSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack/member_season_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3863,8 +3863,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team`; + getTrackAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3896,8 +3896,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team/get`; + getTrackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3929,8 +3929,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team/membership`; + getTrackGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3971,10 +3971,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsDetailGet(options); + async getCarAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssetsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeasonSpectatorSubsessionidsDetailGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarAssetsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -3982,10 +3982,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsGet(options); + async getCarClassDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeasonSpectatorSubsessionidsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -3993,10 +3993,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesAssetsGet(options); + async getCarClassGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesAssetsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4004,10 +4004,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGet(options); + async getCarDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4015,10 +4015,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGetGet(options); + async getCarGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesGetGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4026,10 +4026,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesPastSeasonsGet(options); + async getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategoriesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesPastSeasonsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsCategoriesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4037,10 +4037,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonListGet(options); + async getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisionsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesSeasonListGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDivisionsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4048,10 +4048,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonScheduleGet(options); + async getConstantsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesSeasonScheduleGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4059,10 +4059,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonsGet(options); + async getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesSeasonsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsEventTypesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4070,21 +4070,22 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesStatsSeriesGet(options); + async getDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocSeriesStatsSeriesGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {IracingCategory} category Racing category. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsGet(options); + async getDriverStatsByCategoryCategoryDocs(category: IracingCategory, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryCategoryDocs(category, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getDriverStatsByCategoryCategoryDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4092,10 +4093,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberBestsGet(options); + async getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberBestsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getDriverStatsByCategoryDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4103,10 +4104,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberCareerGet(options); + async getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedCombinedSessionsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberCareerGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedCombinedSessionsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4114,10 +4115,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberDivisionGet(options); + async getHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberDivisionGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4125,10 +4126,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecapGet(options); + async getHostedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedSessionsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberRecapGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedSessionsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4136,10 +4137,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecentRacesGet(options); + async getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessionsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberRecentRacesGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueCustomerLeagueSessionsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4147,10 +4148,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberSummaryGet(options); + async getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectoryDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberSummaryGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueDirectoryDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4158,10 +4159,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberYearlyGet(options); + async getLeagueDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsMemberYearlyGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4169,10 +4170,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonDriverStandingsGet(options); + async getLeagueGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonDriverStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4180,10 +4181,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonQualifyResultsGet(options); + async getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetPointsSystemsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonQualifyResultsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueGetPointsSystemsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4191,10 +4192,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonSupersessionStandingsGet(options); + async getLeagueMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembershipDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonSupersessionStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueMembershipDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4202,10 +4203,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTeamStandingsGet(options); + async getLeagueRosterDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRosterDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonTeamStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueRosterDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4213,10 +4214,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtResultsGet(options); + async getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessionsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonTtResultsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonSessionsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4224,10 +4225,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtStandingsGet(options); + async getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsSeasonTtStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4235,10 +4236,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsWorldRecordsGet(options); + async getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocStatsWorldRecordsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4246,10 +4247,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTimeAttackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackGet(options); + async getLookupCountriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountriesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTimeAttackGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupCountriesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4257,10 +4258,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackMemberSeasonResultsGet(options); + async getLookupDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTimeAttackMemberSeasonResultsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4268,10 +4269,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackAssetsGet(options); + async getLookupDriversDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDriversDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTrackAssetsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupDriversDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4279,10 +4280,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTrackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGet(options); + async getLookupFlairsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupFlairsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTrackGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupFlairsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4290,10 +4291,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTrackGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGetGet(options); + async getLookupGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.dataDocTrackGetGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4301,10 +4302,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssetsDocs(options); + async getLookupLicensesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupLicensesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarAssetsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupLicensesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4312,10 +4313,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarClassDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassDocs(options); + async getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstancesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberAwardInstancesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4323,10 +4324,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarClassGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassGetDocs(options); + async getMemberAwardsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberAwardsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4334,10 +4335,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarDocs(options); + async getMemberChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartDataDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberChartDataDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4345,10 +4346,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarGetDocs(options); + async getMemberDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4356,10 +4357,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategoriesDocs(options); + async getMemberGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsCategoriesDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4367,10 +4368,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisionsDocs(options); + async getMemberInfoDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfoDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDivisionsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberInfoDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4378,10 +4379,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getConstantsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDocs(options); + async getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCreditsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberParticipationCreditsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4389,10 +4390,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypesDocs(options); + async getMemberProfileDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberProfileDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsEventTypesDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberProfileDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4400,22 +4401,21 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDocs(options); + async getResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {IracingCategory} category Racing category. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getDriverStatsByCategoryCategoryDocs(category: IracingCategory, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryCategoryDocs(category, options); + async getResultsEventLogDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsEventLogDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getDriverStatsByCategoryCategoryDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsEventLogDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4423,10 +4423,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryDocs(options); + async getResultsGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getDriverStatsByCategoryDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4434,10 +4434,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedCombinedSessionsDocs(options); + async getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapChartDataDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedCombinedSessionsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsLapChartDataDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4445,10 +4445,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedDocs(options); + async getResultsLapDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapDataDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsLapDataDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4456,10 +4456,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getHostedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedSessionsDocs(options); + async getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchHostedDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getHostedSessionsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSearchHostedDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4467,10 +4467,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessionsDocs(options); + async getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchSeriesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueCustomerLeagueSessionsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSearchSeriesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4478,10 +4478,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectoryDocs(options); + async getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSeasonResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueDirectoryDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4489,10 +4489,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDocs(options); + async getSeasonDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4500,10 +4500,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetDocs(options); + async getSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonListDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonListDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4511,10 +4511,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetPointsSystemsDocs(options); + async getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonRaceGuideDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueGetPointsSystemsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonRaceGuideDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4522,10 +4522,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembershipDocs(options); + async getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIdsDetailDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueMembershipDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonSpectatorSubsessionIdsDetailDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4533,10 +4533,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueRosterDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRosterDocs(options); + async getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIdsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueRosterDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonSpectatorSubsessionIdsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4544,10 +4544,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessionsDocs(options); + async getSeriesAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssetsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonSessionsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesAssetsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4555,10 +4555,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandingsDocs(options); + async getSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonStandingsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4566,10 +4566,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonsDocs(options); + async getSeriesGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLeagueSeasonsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4577,10 +4577,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLookupCountriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountriesDocs(options); + async getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasonsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupCountriesDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesPastSeasonsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4588,10 +4588,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLookupDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDocs(options); + async getSeriesSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonListDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesSeasonListDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4599,10 +4599,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLookupDriversDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDriversDocs(options); + async getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonScheduleDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupDriversDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesSeasonScheduleDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4610,10 +4610,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLookupFlairsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupFlairsDocs(options); + async getSeriesSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupFlairsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesSeasonsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4621,10 +4621,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLookupGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupGetDocs(options); + async getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeriesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getSeriesStatsSeriesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4632,10 +4632,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLookupLicensesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupLicensesDocs(options); + async getStatsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getLookupLicensesDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4643,10 +4643,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstancesDocs(options); + async getStatsMemberBestsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberBestsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberAwardInstancesDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsMemberBestsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4654,10 +4654,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberAwardsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardsDocs(options); + async getStatsMemberCareerDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberCareerDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberAwardsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsMemberCareerDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4665,10 +4665,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartDataDocs(options); + async getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberDivisionDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberChartDataDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsMemberDivisionDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4676,10 +4676,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberDocs(options); + async getStatsMemberRecapDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecapDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsMemberRecapDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4687,10 +4687,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberGetDocs(options); + async getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecentRacesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsMemberRecentRacesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4698,10 +4698,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberInfoDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfoDocs(options); + async getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberSummaryDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberInfoDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsMemberSummaryDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4709,10 +4709,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCreditsDocs(options); + async getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberYearlyDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberParticipationCreditsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsMemberYearlyDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4720,10 +4720,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberProfileDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberProfileDocs(options); + async getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonDriverStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getMemberProfileDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsSeasonDriverStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4731,10 +4731,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsDocs(options); + async getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonQualifyResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsSeasonQualifyResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4742,10 +4742,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsEventLogDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsEventLogDocs(options); + async getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsEventLogDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsSeasonSupersessionStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4753,10 +4753,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsGetDocs(options); + async getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTTResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsSeasonTTResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4764,10 +4764,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapChartDataDocs(options); + async getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTTStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsLapChartDataDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsSeasonTTStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4775,10 +4775,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsLapDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapDataDocs(options); + async getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTeamStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsLapDataDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsSeasonTeamStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4786,10 +4786,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchHostedDocs(options); + async getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsWorldRecordsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSearchHostedDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getStatsWorldRecordsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4797,10 +4797,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchSeriesDocs(options); + async getTeamDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSearchSeriesDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4808,10 +4808,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSeasonResultsDocs(options); + async getTeamGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getResultsSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4819,10 +4819,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeasonDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonDocs(options); + async getTeamMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamMembershipDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamMembershipDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4830,10 +4830,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonListDocs(options); + async getTimeAttackDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonListDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTimeAttackDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4841,10 +4841,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonRaceGuideDocs(options); + async getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackMemberSeasonResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getSeasonRaceGuideDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTimeAttackMemberSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4852,10 +4852,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getTeamDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamDocs(options); + async getTrackAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackAssetsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTrackAssetsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4863,10 +4863,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getTeamGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamGetDocs(options); + async getTrackDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTrackDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -4874,10 +4874,10 @@ export const DocApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getTeamMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamMembershipDocs(options); + async getTrackGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getTeamMembershipDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['DocApi.getTrackGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, } @@ -4894,665 +4894,665 @@ export const DocApiFactory = function (configuration?: Configuration, basePath?: * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(axios, basePath)); + getCarAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarAssetsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(axios, basePath)); + getCarClassDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getCarClassDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesAssetsGet(options).then((request) => request(axios, basePath)); + getCarClassGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarClassGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocSeriesGet(options).then((request) => request(axios, basePath)); + getCarDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getCarDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGetGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesGetGet(options).then((request) => request(axios, basePath)); + getCarGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesPastSeasonsGet(options).then((request) => request(axios, basePath)); + getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsCategoriesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesSeasonListGet(options).then((request) => request(axios, basePath)); + getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsDivisionsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesSeasonScheduleGet(options).then((request) => request(axios, basePath)); + getConstantsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getConstantsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesSeasonsGet(options).then((request) => request(axios, basePath)); + getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsEventTypesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesStatsSeriesGet(options).then((request) => request(axios, basePath)); + getDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }> { + return localVarFp.getDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {DocApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocStatsGet(options).then((request) => request(axios, basePath)); + getDriverStatsByCategoryCategoryDocs(requestParameters: DocApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberBestsGet(options).then((request) => request(axios, basePath)); + getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getDriverStatsByCategoryDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberCareerGet(options).then((request) => request(axios, basePath)); + getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedCombinedSessionsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberDivisionGet(options).then((request) => request(axios, basePath)); + getHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getHostedDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberRecapGet(options).then((request) => request(axios, basePath)); + getHostedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getHostedSessionsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberRecentRacesGet(options).then((request) => request(axios, basePath)); + getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberSummaryGet(options).then((request) => request(axios, basePath)); + getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueDirectoryDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberYearlyGet(options).then((request) => request(axios, basePath)); + getLeagueDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getLeagueDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(axios, basePath)); + getLeagueGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(axios, basePath)); + getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueGetPointsSystemsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(axios, basePath)); + getLeagueMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueMembershipDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(axios, basePath)); + getLeagueRosterDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueRosterDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonTtResultsGet(options).then((request) => request(axios, basePath)); + getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonSessionsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonTtStandingsGet(options).then((request) => request(axios, basePath)); + getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsWorldRecordsGet(options).then((request) => request(axios, basePath)); + getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueSeasonsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocTimeAttackGet(options).then((request) => request(axios, basePath)); + getLookupCountriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupCountriesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(axios, basePath)); + getLookupDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getLookupDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocTrackAssetsGet(options).then((request) => request(axios, basePath)); + getLookupDriversDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupDriversDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocTrackGet(options).then((request) => request(axios, basePath)); + getLookupFlairsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupFlairsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGetGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocTrackGetGet(options).then((request) => request(axios, basePath)); + getLookupGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getCarAssetsDocs(options).then((request) => request(axios, basePath)); + getLookupLicensesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLookupLicensesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getCarClassDocs(options).then((request) => request(axios, basePath)); + getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwardInstancesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getCarClassGetDocs(options).then((request) => request(axios, basePath)); + getMemberAwardsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberAwardsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getCarDocs(options).then((request) => request(axios, basePath)); + getMemberChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberChartDataDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getCarGetDocs(options).then((request) => request(axios, basePath)); + getMemberDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getMemberDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsCategoriesDocs(options).then((request) => request(axios, basePath)); + getMemberGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsDivisionsDocs(options).then((request) => request(axios, basePath)); + getMemberInfoDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberInfoDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getConstantsDocs(options).then((request) => request(axios, basePath)); + getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberParticipationCreditsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsEventTypesDocs(options).then((request) => request(axios, basePath)); + getMemberProfileDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberProfileDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }> { - return localVarFp.getDocs(options).then((request) => request(axios, basePath)); + getResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getResultsDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {DocApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDriverStatsByCategoryCategoryDocs(requestParameters: DocApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(axios, basePath)); + getResultsEventLogDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsEventLogDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getDriverStatsByCategoryDocs(options).then((request) => request(axios, basePath)); + getResultsGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getHostedCombinedSessionsDocs(options).then((request) => request(axios, basePath)); + getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapChartDataDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getHostedDocs(options).then((request) => request(axios, basePath)); + getResultsLapDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsLapDataDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getHostedSessionsDocs(options).then((request) => request(axios, basePath)); + getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchHostedDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(axios, basePath)); + getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSearchSeriesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueDirectoryDocs(options).then((request) => request(axios, basePath)); + getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSeasonResultsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getLeagueDocs(options).then((request) => request(axios, basePath)); + getSeasonDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getSeasonDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueGetDocs(options).then((request) => request(axios, basePath)); + getSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonListDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueGetPointsSystemsDocs(options).then((request) => request(axios, basePath)); + getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonRaceGuideDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueMembershipDocs(options).then((request) => request(axios, basePath)); + getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonSpectatorSubsessionIdsDetailDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueRosterDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueRosterDocs(options).then((request) => request(axios, basePath)); + getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonSpectatorSubsessionIdsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueSeasonSessionsDocs(options).then((request) => request(axios, basePath)); + getSeriesAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesAssetsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueSeasonStandingsDocs(options).then((request) => request(axios, basePath)); + getSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getSeriesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueSeasonsDocs(options).then((request) => request(axios, basePath)); + getSeriesGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupCountriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupCountriesDocs(options).then((request) => request(axios, basePath)); + getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesPastSeasonsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getLookupDocs(options).then((request) => request(axios, basePath)); + getSeriesSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonListDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupDriversDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupDriversDocs(options).then((request) => request(axios, basePath)); + getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonScheduleDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupFlairsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupFlairsDocs(options).then((request) => request(axios, basePath)); + getSeriesSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupGetDocs(options).then((request) => request(axios, basePath)); + getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesStatsSeriesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupLicensesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupLicensesDocs(options).then((request) => request(axios, basePath)); + getStatsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getStatsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberAwardInstancesDocs(options).then((request) => request(axios, basePath)); + getStatsMemberBestsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberBestsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberAwardsDocs(options).then((request) => request(axios, basePath)); + getStatsMemberCareerDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberCareerDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberChartDataDocs(options).then((request) => request(axios, basePath)); + getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberDivisionDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getMemberDocs(options).then((request) => request(axios, basePath)); + getStatsMemberRecapDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecapDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberGetDocs(options).then((request) => request(axios, basePath)); + getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecentRacesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberInfoDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberInfoDocs(options).then((request) => request(axios, basePath)); + getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberSummaryDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberParticipationCreditsDocs(options).then((request) => request(axios, basePath)); + getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberYearlyDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberProfileDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberProfileDocs(options).then((request) => request(axios, basePath)); + getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonDriverStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getResultsDocs(options).then((request) => request(axios, basePath)); + getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonQualifyResultsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsEventLogDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsEventLogDocs(options).then((request) => request(axios, basePath)); + getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonSupersessionStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsGetDocs(options).then((request) => request(axios, basePath)); + getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTTResultsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsLapChartDataDocs(options).then((request) => request(axios, basePath)); + getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTTStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsLapDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsLapDataDocs(options).then((request) => request(axios, basePath)); + getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTeamStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsSearchHostedDocs(options).then((request) => request(axios, basePath)); + getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsWorldRecordsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsSearchSeriesDocs(options).then((request) => request(axios, basePath)); + getTeamDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getTeamDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsSeasonResultsDocs(options).then((request) => request(axios, basePath)); + getTeamGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeamGetDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getSeasonDocs(options).then((request) => request(axios, basePath)); + getTeamMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTeamMembershipDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeasonListDocs(options).then((request) => request(axios, basePath)); + getTimeAttackDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getTimeAttackDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeasonRaceGuideDocs(options).then((request) => request(axios, basePath)); + getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTimeAttackMemberSeasonResultsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getTeamDocs(options).then((request) => request(axios, basePath)); + getTrackAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrackAssetsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTeamGetDocs(options).then((request) => request(axios, basePath)); + getTrackDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getTrackDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTeamMembershipDocs(options).then((request) => request(axios, basePath)); + getTrackGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrackGetDocs(options).then((request) => request(axios, basePath)); }, }; }; @@ -5576,8 +5576,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(this.axios, this.basePath)); + public getCarAssetsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarAssetsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5585,8 +5585,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(this.axios, this.basePath)); + public getCarClassDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarClassDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5594,8 +5594,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesAssetsGet(options).then((request) => request(this.axios, this.basePath)); + public getCarClassGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarClassGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5603,8 +5603,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesGet(options).then((request) => request(this.axios, this.basePath)); + public getCarDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5612,8 +5612,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesGetGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesGetGet(options).then((request) => request(this.axios, this.basePath)); + public getCarGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getCarGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5621,8 +5621,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesPastSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + public getConstantsCategoriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsCategoriesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5630,8 +5630,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesSeasonListGet(options).then((request) => request(this.axios, this.basePath)); + public getConstantsDivisionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsDivisionsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5639,8 +5639,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesSeasonScheduleGet(options).then((request) => request(this.axios, this.basePath)); + public getConstantsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5648,8 +5648,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + public getConstantsEventTypesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getConstantsEventTypesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5657,17 +5657,18 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocSeriesStatsSeriesGet(options).then((request) => request(this.axios, this.basePath)); + public getDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {DocApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsGet(options).then((request) => request(this.axios, this.basePath)); + public getDriverStatsByCategoryCategoryDocs(requestParameters: DocApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(this.axios, this.basePath)); } /** @@ -5675,8 +5676,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsMemberBestsGet(options).then((request) => request(this.axios, this.basePath)); + public getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getDriverStatsByCategoryDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5684,8 +5685,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsMemberCareerGet(options).then((request) => request(this.axios, this.basePath)); + public getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getHostedCombinedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5693,8 +5694,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsMemberDivisionGet(options).then((request) => request(this.axios, this.basePath)); + public getHostedDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getHostedDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5702,8 +5703,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsMemberRecapGet(options).then((request) => request(this.axios, this.basePath)); + public getHostedSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getHostedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5711,8 +5712,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsMemberRecentRacesGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5720,8 +5721,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsMemberSummaryGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueDirectoryDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueDirectoryDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5729,8 +5730,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsMemberYearlyGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5738,8 +5739,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5747,8 +5748,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueGetPointsSystemsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5756,8 +5757,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueMembershipDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueMembershipDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5765,8 +5766,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueRosterDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueRosterDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5774,8 +5775,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsSeasonTtResultsGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueSeasonSessionsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5783,8 +5784,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsSeasonTtStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueSeasonStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5792,8 +5793,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocStatsWorldRecordsGet(options).then((request) => request(this.axios, this.basePath)); + public getLeagueSeasonsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLeagueSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5801,8 +5802,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTimeAttackGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocTimeAttackGet(options).then((request) => request(this.axios, this.basePath)); + public getLookupCountriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupCountriesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5810,8 +5811,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(this.axios, this.basePath)); + public getLookupDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5819,8 +5820,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTrackAssetsGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocTrackAssetsGet(options).then((request) => request(this.axios, this.basePath)); + public getLookupDriversDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupDriversDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5828,8 +5829,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTrackGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocTrackGet(options).then((request) => request(this.axios, this.basePath)); + public getLookupFlairsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupFlairsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5837,8 +5838,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTrackGetGet(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).dataDocTrackGetGet(options).then((request) => request(this.axios, this.basePath)); + public getLookupGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5846,8 +5847,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarAssetsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getCarAssetsDocs(options).then((request) => request(this.axios, this.basePath)); + public getLookupLicensesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getLookupLicensesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5855,8 +5856,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarClassDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getCarClassDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberAwardInstancesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5864,8 +5865,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarClassGetDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getCarClassGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberAwardsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberAwardsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5873,8 +5874,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getCarDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberChartDataDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberChartDataDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5882,8 +5883,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarGetDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getCarGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5891,8 +5892,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getConstantsCategoriesDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getConstantsCategoriesDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5900,8 +5901,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getConstantsDivisionsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getConstantsDivisionsDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberInfoDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberInfoDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5909,8 +5910,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getConstantsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getConstantsDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberParticipationCreditsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5918,8 +5919,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getConstantsEventTypesDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getConstantsEventTypesDocs(options).then((request) => request(this.axios, this.basePath)); + public getMemberProfileDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getMemberProfileDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5927,18 +5928,17 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getDocs(options).then((request) => request(this.axios, this.basePath)); + public getResultsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {DocApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getDriverStatsByCategoryCategoryDocs(requestParameters: DocApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(this.axios, this.basePath)); + public getResultsEventLogDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsEventLogDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5946,8 +5946,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getDriverStatsByCategoryDocs(options).then((request) => request(this.axios, this.basePath)); + public getResultsGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5955,8 +5955,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getHostedCombinedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + public getResultsLapChartDataDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsLapChartDataDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5964,8 +5964,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getHostedDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getHostedDocs(options).then((request) => request(this.axios, this.basePath)); + public getResultsLapDataDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsLapDataDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5973,8 +5973,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getHostedSessionsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getHostedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + public getResultsSearchHostedDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsSearchHostedDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5982,8 +5982,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + public getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsSearchSeriesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -5991,8 +5991,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueDirectoryDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueDirectoryDocs(options).then((request) => request(this.axios, this.basePath)); + public getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getResultsSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6000,8 +6000,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6009,8 +6009,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueGetDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonListDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6018,8 +6018,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueGetPointsSystemsDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6027,8 +6027,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueMembershipDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueMembershipDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDetailDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6036,8 +6036,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueRosterDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueRosterDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6045,8 +6045,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueSeasonSessionsDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesAssetsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesAssetsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6054,8 +6054,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueSeasonStandingsDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6063,8 +6063,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLeagueSeasonsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLeagueSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6072,8 +6072,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLookupCountriesDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLookupCountriesDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesPastSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6081,8 +6081,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLookupDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLookupDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonListDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6090,8 +6090,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLookupDriversDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLookupDriversDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesSeasonScheduleDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6099,8 +6099,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLookupFlairsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLookupFlairsDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6108,8 +6108,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLookupGetDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLookupGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getSeriesStatsSeriesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6117,8 +6117,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getLookupLicensesDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getLookupLicensesDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6126,8 +6126,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberAwardInstancesDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberBestsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsMemberBestsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6135,8 +6135,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberAwardsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberAwardsDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberCareerDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsMemberCareerDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6144,8 +6144,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberChartDataDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberChartDataDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsMemberDivisionDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6153,8 +6153,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberRecapDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsMemberRecapDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6162,8 +6162,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberGetDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsMemberRecentRacesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6171,8 +6171,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberInfoDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberInfoDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsMemberSummaryDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6180,8 +6180,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberParticipationCreditsDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsMemberYearlyDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6189,8 +6189,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getMemberProfileDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getMemberProfileDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsSeasonDriverStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6198,8 +6198,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsSeasonQualifyResultsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6207,8 +6207,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsEventLogDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsEventLogDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsSeasonSupersessionStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6216,8 +6216,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsGetDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsSeasonTTResultsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6225,8 +6225,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsLapChartDataDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsLapChartDataDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsSeasonTTStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6234,8 +6234,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsLapDataDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsLapDataDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsSeasonTeamStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6243,8 +6243,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsSearchHostedDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsSearchHostedDocs(options).then((request) => request(this.axios, this.basePath)); + public getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getStatsWorldRecordsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6252,8 +6252,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsSearchSeriesDocs(options).then((request) => request(this.axios, this.basePath)); + public getTeamDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTeamDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6261,8 +6261,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getResultsSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); + public getTeamGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTeamGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6270,8 +6270,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getSeasonDocs(options).then((request) => request(this.axios, this.basePath)); + public getTeamMembershipDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTeamMembershipDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6279,8 +6279,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonListDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); + public getTimeAttackDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTimeAttackDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6288,8 +6288,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); + public getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTimeAttackMemberSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6297,8 +6297,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getTeamDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getTeamDocs(options).then((request) => request(this.axios, this.basePath)); + public getTrackAssetsDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTrackAssetsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6306,8 +6306,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getTeamGetDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getTeamGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getTrackDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTrackDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -6315,8 +6315,8 @@ export class DocApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getTeamMembershipDocs(options?: RawAxiosRequestConfig) { - return DocApiFp(this.configuration).getTeamMembershipDocs(options).then((request) => request(this.axios, this.basePath)); + public getTrackGetDocs(options?: RawAxiosRequestConfig) { + return DocApiFp(this.configuration).getTrackGetDocs(options).then((request) => request(this.axios, this.basePath)); } } @@ -11783,8 +11783,8 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsDetailGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; + getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -11813,11 +11813,17 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} season_year + * @param {number} season_quarter * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids`; + getSeasonList: async (season_year: number, season_quarter: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_year' is not null or undefined + assertParamExists('getSeasonList', 'season_year', season_year) + // verify required parameter 'season_quarter' is not null or undefined + assertParamExists('getSeasonList', 'season_quarter', season_quarter) + const localVarPath = `/data/season/list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -11833,6 +11839,14 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } + + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -11849,8 +11863,8 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season`; + getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -11879,17 +11893,13 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio }, /** * - * @param {number} season_year - * @param {number} season_quarter + * @param {string} [from] ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. + * @param {boolean} [include_end_after_from] Include sessions which start before \'from\' but end after. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonList: async (season_year: number, season_quarter: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_year' is not null or undefined - assertParamExists('getSeasonList', 'season_year', season_year) - // verify required parameter 'season_quarter' is not null or undefined - assertParamExists('getSeasonList', 'season_quarter', season_quarter) - const localVarPath = `/data/season/list`; + getSeasonRaceGuide: async (from?: string, include_end_after_from?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/season/race_guide`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -11905,12 +11915,14 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (season_year !== undefined) { - localVarQueryParameter['season_year'] = season_year; + if (from !== undefined) { + localVarQueryParameter['from'] = (from as any instanceof Date) ? + (from as any).toISOString() : + from; } - if (season_quarter !== undefined) { - localVarQueryParameter['season_quarter'] = season_quarter; + if (include_end_after_from !== undefined) { + localVarQueryParameter['include_end_after_from'] = include_end_after_from; } @@ -11929,8 +11941,8 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/list`; + getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/race_guide`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -11959,13 +11971,11 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio }, /** * - * @param {string} [from] ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. - * @param {boolean} [include_end_after_from] Include sessions which start before \'from\' but end after. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonRaceGuide: async (from?: string, include_end_after_from?: boolean, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/season/race_guide`; + getSeasonSpectatorSubsessionIdsDetailDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -11981,16 +11991,6 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (from !== undefined) { - localVarQueryParameter['from'] = (from as any instanceof Date) ? - (from as any).toISOString() : - from; - } - - if (include_end_after_from !== undefined) { - localVarQueryParameter['include_end_after_from'] = include_end_after_from; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12007,8 +12007,8 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/race_guide`; + getSeasonSpectatorSubsessionIdsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12044,28 +12044,6 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio export const SeasonApiFp = function(configuration?: Configuration) { const localVarAxiosParamCreator = SeasonApiAxiosParamCreator(configuration) return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsDetailGet(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeasonApi.dataDocSeasonSpectatorSubsessionidsDetailGet']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeasonSpectatorSubsessionidsGet(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeasonApi.dataDocSeasonSpectatorSubsessionidsGet']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {*} [options] Override http request option. @@ -12125,31 +12103,37 @@ export const SeasonApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonRaceGuideDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - } -}; - -/** - * SeasonApi - factory interface - */ -export const SeasonApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = SeasonApiFp(configuration) - return { /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(axios, basePath)); + async getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIdsDetailDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonSpectatorSubsessionIdsDetailDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(axios, basePath)); + async getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIdsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonSpectatorSubsessionIdsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, + } +}; + +/** + * SeasonApi - factory interface + */ +export const SeasonApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = SeasonApiFp(configuration) + return { /** * * @param {*} [options] Override http request option. @@ -12192,6 +12176,22 @@ export const SeasonApiFactory = function (configuration?: Configuration, basePat getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeasonRaceGuideDocs(options).then((request) => request(axios, basePath)); }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonSpectatorSubsessionIdsDetailDocs(options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonSpectatorSubsessionIdsDocs(options).then((request) => request(axios, basePath)); + }, }; }; @@ -12228,17 +12228,18 @@ export class SeasonApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeasonSpectatorSubsessionidsDetailGet(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsDetailGet(options).then((request) => request(this.axios, this.basePath)); + public getSeasonDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {SeasonApiGetSeasonListRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeasonSpectatorSubsessionidsGet(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).dataDocSeasonSpectatorSubsessionidsGet(options).then((request) => request(this.axios, this.basePath)); + public getSeasonList(requestParameters: SeasonApiGetSeasonListRequest, options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonList(requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); } /** @@ -12246,18 +12247,18 @@ export class SeasonApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonListDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {SeasonApiGetSeasonListRequest} requestParameters Request parameters. + * @param {SeasonApiGetSeasonRaceGuideRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonList(requestParameters: SeasonApiGetSeasonListRequest, options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonList(requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + public getSeasonRaceGuide(requestParameters: SeasonApiGetSeasonRaceGuideRequest = {}, options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonRaceGuide(requestParameters.from, requestParameters.include_end_after_from, options).then((request) => request(this.axios, this.basePath)); } /** @@ -12265,18 +12266,17 @@ export class SeasonApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonListDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {SeasonApiGetSeasonRaceGuideRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonRaceGuide(requestParameters: SeasonApiGetSeasonRaceGuideRequest = {}, options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonRaceGuide(requestParameters.from, requestParameters.include_end_after_from, options).then((request) => request(this.axios, this.basePath)); + public getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDetailDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -12284,8 +12284,8 @@ export class SeasonApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDocs(options).then((request) => request(this.axios, this.basePath)); } } @@ -12301,8 +12301,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/assets`; + getSeries: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12334,8 +12334,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series`; + getSeriesAssets: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12367,8 +12367,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/get`; + getSeriesAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12400,8 +12400,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesPastSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/past_seasons`; + getSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12433,8 +12433,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonListGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_list`; + getSeriesGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12463,11 +12463,14 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} series_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonScheduleGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_schedule`; + getSeriesPastSeasons: async (series_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'series_id' is not null or undefined + assertParamExists('getSeriesPastSeasons', 'series_id', series_id) + const localVarPath = `/data/series/past_seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12483,6 +12486,10 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (series_id !== undefined) { + localVarQueryParameter['series_id'] = series_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12499,8 +12506,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/seasons`; + getSeriesPastSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/past_seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12529,11 +12536,14 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {boolean} [include_series] + * @param {number} [season_year] + * @param {number} [season_quarter] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesStatsSeriesGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/stats_series`; + getSeriesSeasonList: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/season_list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12549,6 +12559,18 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (include_series !== undefined) { + localVarQueryParameter['include_series'] = include_series; + } + + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } + + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12565,8 +12587,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeries: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/get`; + getSeriesSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12595,11 +12617,14 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesAssets: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/assets`; + getSeriesSeasonSchedule: async (season_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getSeriesSeasonSchedule', 'season_id', season_id) + const localVarPath = `/data/series/season_schedule`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12615,6 +12640,10 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12628,14 +12657,11 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * - * @param {number} series_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesPastSeasons: async (series_id: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'series_id' is not null or undefined - assertParamExists('getSeriesPastSeasons', 'series_id', series_id) - const localVarPath = `/data/series/past_seasons`; + getSeriesSeasonScheduleDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_schedule`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12651,10 +12677,6 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (series_id !== undefined) { - localVarQueryParameter['series_id'] = series_id; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12669,13 +12691,13 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio /** * * @param {boolean} [include_series] - * @param {number} [season_year] - * @param {number} [season_quarter] + * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonList: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/season_list`; + getSeriesSeasons: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12716,14 +12738,11 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * - * @param {number} season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonSchedule: async (season_id: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getSeriesSeasonSchedule', 'season_id', season_id) - const localVarPath = `/data/series/season_schedule`; + getSeriesSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12739,10 +12758,6 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12756,14 +12771,11 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * - * @param {boolean} [include_series] - * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. - * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasons: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/seasons`; + getSeriesStatsSeries: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/stats_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12779,18 +12791,6 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (include_series !== undefined) { - localVarQueryParameter['include_series'] = include_series; - } - - if (season_year !== undefined) { - localVarQueryParameter['season_year'] = season_year; - } - - if (season_quarter !== undefined) { - localVarQueryParameter['season_quarter'] = season_quarter; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12807,8 +12807,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesStatsSeries: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/stats_series`; + getSeriesStatsSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/stats_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12849,10 +12849,10 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesAssetsGet(options); + async getSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeries(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesAssetsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeries']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -12860,10 +12860,10 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGet(options); + async getSeriesAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssets(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesAssets']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -12871,10 +12871,10 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesGetGet(options); + async getSeriesAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssetsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesGetGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesAssetsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -12882,10 +12882,10 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesPastSeasonsGet(options); + async getSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesPastSeasonsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -12893,21 +12893,22 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonListGet(options); + async getSeriesGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesSeasonListGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} series_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonScheduleGet(options); + async getSeriesPastSeasons(series_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasons(series_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesSeasonScheduleGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesPastSeasons']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -12915,21 +12916,24 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesSeasonsGet(options); + async getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasonsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesSeasonsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesPastSeasonsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {boolean} [include_series] + * @param {number} [season_year] + * @param {number} [season_quarter] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocSeriesStatsSeriesGet(options); + async getSeriesSeasonList(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonList(include_series, season_year, season_quarter, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.dataDocSeriesStatsSeriesGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonList']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -12937,73 +12941,69 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeries(options); + async getSeriesSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonListDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeries']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonListDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssets(options); + async getSeriesSeasonSchedule(season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonSchedule(season_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesAssets']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonSchedule']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} series_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesPastSeasons(series_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasons(series_id, options); + async getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonScheduleDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesPastSeasons']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonScheduleDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {boolean} [include_series] - * @param {number} [season_year] - * @param {number} [season_quarter] + * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesSeasonList(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonList(include_series, season_year, season_quarter, options); + async getSeriesSeasons(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasons(include_series, season_year, season_quarter, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonList']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasons']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesSeasonSchedule(season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonSchedule(season_id, options); + async getSeriesSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonSchedule']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {boolean} [include_series] - * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. - * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesSeasons(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasons(include_series, season_year, season_quarter, options); + async getSeriesStatsSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeries(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasons']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesStatsSeries']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -13011,10 +13011,10 @@ export const SeriesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesStatsSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeries(options); + async getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeriesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesStatsSeries']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesStatsSeriesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, } @@ -13031,124 +13031,124 @@ export const SeriesApiFactory = function (configuration?: Configuration, basePat * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesAssetsGet(options).then((request) => request(axios, basePath)); + getSeries(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeries(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocSeriesGet(options).then((request) => request(axios, basePath)); + getSeriesAssets(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesAssets(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesGetGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesGetGet(options).then((request) => request(axios, basePath)); + getSeriesAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesAssetsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesPastSeasonsGet(options).then((request) => request(axios, basePath)); + getSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getSeriesDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesSeasonListGet(options).then((request) => request(axios, basePath)); + getSeriesGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesGetDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesSeasonScheduleGet(options).then((request) => request(axios, basePath)); + getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesSeasonsGet(options).then((request) => request(axios, basePath)); + getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesPastSeasonsDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocSeriesStatsSeriesGet(options).then((request) => request(axios, basePath)); + getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeries(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeries(options).then((request) => request(axios, basePath)); + getSeriesSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonListDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesAssets(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesAssets(options).then((request) => request(axios, basePath)); + getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(axios, basePath)); }, /** * - * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(axios, basePath)); + getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonScheduleDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. + * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); + getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); }, /** * - * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(axios, basePath)); + getSeriesSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonsDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); + getSeriesStatsSeries(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesStatsSeries(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesStatsSeries(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesStatsSeries(options).then((request) => request(axios, basePath)); + getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesStatsSeriesDocs(options).then((request) => request(axios, basePath)); }, }; }; @@ -13204,8 +13204,8 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesAssetsGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesAssetsGet(options).then((request) => request(this.axios, this.basePath)); + public getSeries(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeries(options).then((request) => request(this.axios, this.basePath)); } /** @@ -13213,8 +13213,8 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesGet(options).then((request) => request(this.axios, this.basePath)); + public getSeriesAssets(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesAssets(options).then((request) => request(this.axios, this.basePath)); } /** @@ -13222,8 +13222,8 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesGetGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesGetGet(options).then((request) => request(this.axios, this.basePath)); + public getSeriesAssetsDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesAssetsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -13231,8 +13231,8 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesPastSeasonsGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesPastSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + public getSeriesDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -13240,17 +13240,18 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesSeasonListGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesSeasonListGet(options).then((request) => request(this.axios, this.basePath)); + public getSeriesGetDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesGetDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesSeasonScheduleGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesSeasonScheduleGet(options).then((request) => request(this.axios, this.basePath)); + public getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(this.axios, this.basePath)); } /** @@ -13258,17 +13259,18 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesSeasonsGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesSeasonsGet(options).then((request) => request(this.axios, this.basePath)); + public getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesPastSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocSeriesStatsSeriesGet(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).dataDocSeriesStatsSeriesGet(options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); } /** @@ -13276,57 +13278,55 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeries(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeries(options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonListDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesAssets(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesAssets(options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonScheduleDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. + * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonsDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + public getSeriesStatsSeries(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesStatsSeries(options).then((request) => request(this.axios, this.basePath)); } /** @@ -13334,8 +13334,8 @@ export class SeriesApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesStatsSeries(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesStatsSeries(options).then((request) => request(this.axios, this.basePath)); + public getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesStatsSeriesDocs(options).then((request) => request(this.axios, this.basePath)); } } @@ -13351,7 +13351,7 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsGet: async (options: RawAxiosRequestConfig = {}): Promise => { + getStatsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { const localVarPath = `/data/doc/stats`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -13381,11 +13381,13 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberBestsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_bests`; + getStatsMemberBests: async (cust_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_bests`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13401,6 +13403,14 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (car_id !== undefined) { + localVarQueryParameter['car_id'] = car_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13417,8 +13427,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberCareerGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_career`; + getStatsMemberBestsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_bests`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13447,11 +13457,12 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberDivisionGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_division`; + getStatsMemberCareer: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_career`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13467,6 +13478,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13483,8 +13498,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecapGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recap`; + getStatsMemberCareerDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_career`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13513,11 +13528,17 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} season_id + * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecentRacesGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recent_races`; + getStatsMemberDivision: async (season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsMemberDivision', 'season_id', season_id) + // verify required parameter 'event_type' is not null or undefined + assertParamExists('getStatsMemberDivision', 'event_type', event_type) + const localVarPath = `/data/stats/member_division`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13533,6 +13554,14 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (event_type !== undefined) { + localVarQueryParameter['event_type'] = event_type; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13549,8 +13578,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberSummaryGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_summary`; + getStatsMemberDivisionDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_division`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13579,11 +13608,14 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. + * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberYearlyGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_yearly`; + getStatsMemberRecap: async (cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_recap`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13599,6 +13631,18 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (year !== undefined) { + localVarQueryParameter['year'] = year; + } + + if (season !== undefined) { + localVarQueryParameter['season'] = season; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13615,8 +13659,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonDriverStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_driver_standings`; + getStatsMemberRecapDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recap`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13645,11 +13689,12 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonQualifyResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_qualify_results`; + getStatsMemberRecentRaces: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_recent_races`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13665,6 +13710,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13681,8 +13730,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonSupersessionStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_supersession_standings`; + getStatsMemberRecentRacesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recent_races`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13711,11 +13760,12 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTeamStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_team_standings`; + getStatsMemberSummary: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_summary`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13731,6 +13781,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13747,8 +13801,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_results`; + getStatsMemberSummaryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_summary`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13777,11 +13831,12 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtStandingsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_standings`; + getStatsMemberYearly: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_yearly`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13797,6 +13852,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13813,8 +13872,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsWorldRecordsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/world_records`; + getStatsMemberYearlyDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_yearly`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13843,13 +13902,19 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberBests: async (cust_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_bests`; + getStatsSeasonDriverStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonDriverStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonDriverStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_driver_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13865,12 +13930,20 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; } - if (car_id !== undefined) { - localVarQueryParameter['car_id'] = car_id; + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; } @@ -13886,12 +13959,11 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberCareer: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_career`; + getStatsSeasonDriverStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_driver_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13907,10 +13979,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -13925,16 +13993,20 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration /** * * @param {number} season_id - * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race + * @param {number} car_class_id + * @param {number} race_week_num The first race week of a season is 0. + * @param {IracingDivision} [division] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberDivision: async (season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options: RawAxiosRequestConfig = {}): Promise => { + getStatsSeasonQualifyResults: async (season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsMemberDivision', 'season_id', season_id) - // verify required parameter 'event_type' is not null or undefined - assertParamExists('getStatsMemberDivision', 'event_type', event_type) - const localVarPath = `/data/stats/member_division`; + assertParamExists('getStatsSeasonQualifyResults', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'car_class_id', car_class_id) + // verify required parameter 'race_week_num' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'race_week_num', race_week_num) + const localVarPath = `/data/stats/season_qualify_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13954,8 +14026,16 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['season_id'] = season_id; } - if (event_type !== undefined) { - localVarQueryParameter['event_type'] = event_type; + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; } @@ -13971,14 +14051,11 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. - * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberRecap: async (cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_recap`; + getStatsSeasonQualifyResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_qualify_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -13994,18 +14071,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - - if (year !== undefined) { - localVarQueryParameter['year'] = year; - } - - if (season !== undefined) { - localVarQueryParameter['season'] = season; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14019,12 +14084,19 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberRecentRaces: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_recent_races`; + getStatsSeasonSupersessionStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonSupersessionStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonSupersessionStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_supersession_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14040,46 +14112,20 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; } - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberSummary: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_summary`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; } @@ -14095,12 +14141,11 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberYearly: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_yearly`; + getStatsSeasonSupersessionStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_supersession_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14116,10 +14161,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14133,19 +14174,11 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {IracingDivision} [division] - * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonDriverStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonDriverStandings', 'season_id', season_id) - // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonDriverStandings', 'car_class_id', car_class_id) - const localVarPath = `/data/stats/season_driver_standings`; + getStatsSeasonTTResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14161,22 +14194,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (car_class_id !== undefined) { - localVarQueryParameter['car_class_id'] = car_class_id; - } - - if (division !== undefined) { - localVarQueryParameter['division'] = division; - } - - if (race_week_num !== undefined) { - localVarQueryParameter['race_week_num'] = race_week_num; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14190,21 +14207,11 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {number} race_week_num The first race week of a season is 0. - * @param {IracingDivision} [division] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonQualifyResults: async (season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonQualifyResults', 'season_id', season_id) - // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonQualifyResults', 'car_class_id', car_class_id) - // verify required parameter 'race_week_num' is not null or undefined - assertParamExists('getStatsSeasonQualifyResults', 'race_week_num', race_week_num) - const localVarPath = `/data/stats/season_qualify_results`; + getStatsSeasonTTStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14220,22 +14227,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (car_class_id !== undefined) { - localVarQueryParameter['car_class_id'] = car_class_id; - } - - if (race_week_num !== undefined) { - localVarQueryParameter['race_week_num'] = race_week_num; - } - - if (division !== undefined) { - localVarQueryParameter['division'] = division; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14251,17 +14242,16 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * * @param {number} season_id * @param {number} car_class_id - * @param {IracingDivision} [division] * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonSupersessionStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + getStatsSeasonTeamStandings: async (season_id: number, car_class_id: number, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonSupersessionStandings', 'season_id', season_id) + assertParamExists('getStatsSeasonTeamStandings', 'season_id', season_id) // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonSupersessionStandings', 'car_class_id', car_class_id) - const localVarPath = `/data/stats/season_supersession_standings`; + assertParamExists('getStatsSeasonTeamStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_team_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14285,10 +14275,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['car_class_id'] = car_class_id; } - if (division !== undefined) { - localVarQueryParameter['division'] = division; - } - if (race_week_num !== undefined) { localVarQueryParameter['race_week_num'] = race_week_num; } @@ -14306,18 +14292,11 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTeamStandings: async (season_id: number, car_class_id: number, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonTeamStandings', 'season_id', season_id) - // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonTeamStandings', 'car_class_id', car_class_id) - const localVarPath = `/data/stats/season_team_standings`; + getStatsSeasonTeamStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_team_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14333,18 +14312,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (car_class_id !== undefined) { - localVarQueryParameter['car_class_id'] = car_class_id; - } - - if (race_week_num !== undefined) { - localVarQueryParameter['race_week_num'] = race_week_num; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14520,6 +14487,39 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsWorldRecordsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/world_records`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -14543,43 +14543,23 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsGet(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsGet']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberBestsGet(options); + async getStatsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberBestsGet']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberCareerGet(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberCareerGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberDivisionGet(options); + async getStatsMemberBests(cust_id?: number, car_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberBests(cust_id, car_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberDivisionGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberBests']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -14587,21 +14567,22 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecapGet(options); + async getStatsMemberBestsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberBestsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberRecapGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberBestsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberRecentRacesGet(options); + async getStatsMemberCareer(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberCareer(cust_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberRecentRacesGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberCareer']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -14609,21 +14590,23 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberSummaryGet(options); + async getStatsMemberCareerDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberCareerDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberSummaryGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberCareerDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} season_id + * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsMemberYearlyGet(options); + async getStatsMemberDivision(season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberDivision(season_id, event_type, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsMemberYearlyGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberDivision']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -14631,21 +14614,24 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonDriverStandingsGet(options); + async getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberDivisionDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonDriverStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberDivisionDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. + * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonQualifyResultsGet(options); + async getStatsMemberRecap(cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecap(cust_id, year, season, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonQualifyResultsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecap']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -14653,21 +14639,22 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonSupersessionStandingsGet(options); + async getStatsMemberRecapDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecapDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonSupersessionStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecapDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTeamStandingsGet(options); + async getStatsMemberRecentRaces(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecentRaces(cust_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonTeamStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecentRaces']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -14675,21 +14662,22 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtResultsGet(options); + async getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecentRacesDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonTtResultsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecentRacesDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsSeasonTtStandingsGet(options); + async getStatsMemberSummary(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberSummary(cust_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsSeasonTtStandingsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberSummary']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -14697,143 +14685,133 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocStatsWorldRecordsGet(options); + async getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberSummaryDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.dataDocStatsWorldRecordsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberSummaryDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {number} [cust_id] Defaults to the authenticated member. - * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsMemberBests(cust_id?: number, car_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberBests(cust_id, car_id, options); + async getStatsMemberYearly(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberYearly(cust_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberBests']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberYearly']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsMemberCareer(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberCareer(cust_id, options); + async getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberYearlyDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberCareer']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberYearlyDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {number} season_id - * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsMemberDivision(season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberDivision(season_id, event_type, options); + async getStatsSeasonDriverStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonDriverStandings(season_id, car_class_id, division, race_week_num, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberDivision']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonDriverStandings']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. - * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsMemberRecap(cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecap(cust_id, year, season, options); + async getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonDriverStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecap']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonDriverStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} season_id + * @param {number} car_class_id + * @param {number} race_week_num The first race week of a season is 0. + * @param {IracingDivision} [division] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsMemberRecentRaces(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecentRaces(cust_id, options); + async getStatsSeasonQualifyResults(season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonQualifyResults(season_id, car_class_id, race_week_num, division, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecentRaces']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonQualifyResults']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsMemberSummary(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberSummary(cust_id, options); + async getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonQualifyResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberSummary']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonQualifyResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsMemberYearly(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberYearly(cust_id, options); + async getStatsSeasonSupersessionStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandings(season_id, car_class_id, division, race_week_num, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberYearly']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonSupersessionStandings']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {IracingDivision} [division] - * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsSeasonDriverStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonDriverStandings(season_id, car_class_id, division, race_week_num, options); + async getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonDriverStandings']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonSupersessionStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {number} race_week_num The first race week of a season is 0. - * @param {IracingDivision} [division] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsSeasonQualifyResults(season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonQualifyResults(season_id, car_class_id, race_week_num, division, options); + async getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTTResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonQualifyResults']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTTResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {IracingDivision} [division] - * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getStatsSeasonSupersessionStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandings(season_id, car_class_id, division, race_week_num, options); + async getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTTStandingsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonSupersessionStandings']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTTStandingsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -14850,6 +14828,17 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTeamStandings']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTeamStandingsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTeamStandingsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, /** * * @param {number} season_id @@ -14895,6 +14884,17 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsWorldRecords']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsWorldRecordsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsWorldRecordsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, } }; @@ -14909,219 +14909,211 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocStatsGet(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberBestsGet(options).then((request) => request(axios, basePath)); + getStatsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getStatsDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberCareerGet(options).then((request) => request(axios, basePath)); + getStatsMemberBests(requestParameters: StatsApiGetStatsMemberBestsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberDivisionGet(options).then((request) => request(axios, basePath)); + getStatsMemberBestsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberBestsDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberRecapGet(options).then((request) => request(axios, basePath)); + getStatsMemberCareer(requestParameters: StatsApiGetStatsMemberCareerRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberRecentRacesGet(options).then((request) => request(axios, basePath)); + getStatsMemberCareerDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberCareerDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberSummaryGet(options).then((request) => request(axios, basePath)); + getStatsMemberDivision(requestParameters: StatsApiGetStatsMemberDivisionRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsMemberYearlyGet(options).then((request) => request(axios, basePath)); + getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberDivisionDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(axios, basePath)); + getStatsMemberRecap(requestParameters: StatsApiGetStatsMemberRecapRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(axios, basePath)); + getStatsMemberRecapDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecapDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(axios, basePath)); + getStatsMemberRecentRaces(requestParameters: StatsApiGetStatsMemberRecentRacesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(axios, basePath)); + getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberRecentRacesDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonTtResultsGet(options).then((request) => request(axios, basePath)); + getStatsMemberSummary(requestParameters: StatsApiGetStatsMemberSummaryRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsSeasonTtStandingsGet(options).then((request) => request(axios, basePath)); + getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberSummaryDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocStatsWorldRecordsGet(options).then((request) => request(axios, basePath)); + getStatsMemberYearly(requestParameters: StatsApiGetStatsMemberYearlyRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberBests(requestParameters: StatsApiGetStatsMemberBestsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(axios, basePath)); + getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsMemberYearlyDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberCareer(requestParameters: StatsApiGetStatsMemberCareerRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + getStatsSeasonDriverStandings(requestParameters: StatsApiGetStatsSeasonDriverStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberDivision(requestParameters: StatsApiGetStatsMemberDivisionRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(axios, basePath)); + getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonDriverStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberRecap(requestParameters: StatsApiGetStatsMemberRecapRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(axios, basePath)); + getStatsSeasonQualifyResults(requestParameters: StatsApiGetStatsSeasonQualifyResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberRecentRaces(requestParameters: StatsApiGetStatsMemberRecentRacesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonQualifyResultsDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberSummary(requestParameters: StatsApiGetStatsMemberSummaryRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + getStatsSeasonSupersessionStandings(requestParameters: StatsApiGetStatsSeasonSupersessionStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberYearly(requestParameters: StatsApiGetStatsMemberYearlyRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(axios, basePath)); + getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonSupersessionStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonDriverStandings(requestParameters: StatsApiGetStatsSeasonDriverStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTTResultsDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonQualifyResults(requestParameters: StatsApiGetStatsSeasonQualifyResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(axios, basePath)); + getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTTStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonSupersessionStandings(requestParameters: StatsApiGetStatsSeasonSupersessionStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + getStatsSeasonTeamStandings(requestParameters: StatsApiGetStatsSeasonTeamStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); }, /** * - * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTeamStandings(requestParameters: StatsApiGetStatsSeasonTeamStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); + getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsSeasonTeamStandingsDocs(options).then((request) => request(axios, basePath)); }, /** * @@ -15150,6 +15142,14 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsWorldRecords(requestParameters: StatsApiGetStatsWorldRecordsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsWorldRecords(requestParameters.car_id, requestParameters.track_id, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getStatsWorldRecordsDocs(options).then((request) => request(axios, basePath)); + }, }; }; @@ -15362,26 +15362,18 @@ export class StatsApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsGet(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public dataDocStatsMemberBestsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsMemberBestsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberCareerGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsMemberCareerGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberBests(requestParameters: StatsApiGetStatsMemberBestsRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(this.axios, this.basePath)); } /** @@ -15389,17 +15381,18 @@ export class StatsApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberDivisionGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsMemberDivisionGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberBestsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberBestsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberRecapGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsMemberRecapGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberCareer(requestParameters: StatsApiGetStatsMemberCareerRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } /** @@ -15407,17 +15400,18 @@ export class StatsApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberRecentRacesGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsMemberRecentRacesGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberCareerDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberCareerDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberSummaryGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsMemberSummaryGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberDivision(requestParameters: StatsApiGetStatsMemberDivisionRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(this.axios, this.basePath)); } /** @@ -15425,17 +15419,18 @@ export class StatsApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsMemberYearlyGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsMemberYearlyGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberDivisionDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonDriverStandingsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsSeasonDriverStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberRecap(requestParameters: StatsApiGetStatsMemberRecapRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(this.axios, this.basePath)); } /** @@ -15443,17 +15438,18 @@ export class StatsApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonQualifyResultsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsSeasonQualifyResultsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberRecapDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberRecapDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonSupersessionStandingsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsSeasonSupersessionStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberRecentRaces(requestParameters: StatsApiGetStatsMemberRecentRacesRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } /** @@ -15461,17 +15457,18 @@ export class StatsApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonTeamStandingsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsSeasonTeamStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberRecentRacesDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonTtResultsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsSeasonTtResultsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberSummary(requestParameters: StatsApiGetStatsMemberSummaryRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } /** @@ -15479,127 +15476,121 @@ export class StatsApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsSeasonTtStandingsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsSeasonTtStandingsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberSummaryDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocStatsWorldRecordsGet(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).dataDocStatsWorldRecordsGet(options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberYearly(requestParameters: StatsApiGetStatsMemberYearlyRequest = {}, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsMemberBests(requestParameters: StatsApiGetStatsMemberBestsRequest = {}, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(this.axios, this.basePath)); + public getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsMemberYearlyDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsMemberCareer(requestParameters: StatsApiGetStatsMemberCareerRequest = {}, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonDriverStandings(requestParameters: StatsApiGetStatsSeasonDriverStandingsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsMemberDivision(requestParameters: StatsApiGetStatsMemberDivisionRequest, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonDriverStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsMemberRecap(requestParameters: StatsApiGetStatsMemberRecapRequest = {}, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonQualifyResults(requestParameters: StatsApiGetStatsSeasonQualifyResultsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsMemberRecentRaces(requestParameters: StatsApiGetStatsMemberRecentRacesRequest = {}, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonQualifyResultsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsMemberSummary(requestParameters: StatsApiGetStatsMemberSummaryRequest = {}, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonSupersessionStandings(requestParameters: StatsApiGetStatsSeasonSupersessionStandingsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsMemberYearly(requestParameters: StatsApiGetStatsMemberYearlyRequest = {}, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonSupersessionStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsSeasonDriverStandings(requestParameters: StatsApiGetStatsSeasonDriverStandingsRequest, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonTTResultsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsSeasonQualifyResults(requestParameters: StatsApiGetStatsSeasonQualifyResultsRequest, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonTTStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. + * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsSeasonSupersessionStandings(requestParameters: StatsApiGetStatsSeasonSupersessionStandingsRequest, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonTeamStandings(requestParameters: StatsApiGetStatsSeasonTeamStandingsRequest, options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getStatsSeasonTeamStandings(requestParameters: StatsApiGetStatsSeasonTeamStandingsRequest, options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); + public getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsSeasonTeamStandingsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -15631,6 +15622,15 @@ export class StatsApi extends BaseAPI { public getStatsWorldRecords(requestParameters: StatsApiGetStatsWorldRecordsRequest, options?: RawAxiosRequestConfig) { return StatsApiFp(this.configuration).getStatsWorldRecords(requestParameters.car_id, requestParameters.track_id, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig) { + return StatsApiFp(this.configuration).getStatsWorldRecordsDocs(options).then((request) => request(this.axios, this.basePath)); + } } export const GetStatsMemberDivisionEventTypeEnum = { @@ -16023,7 +16023,7 @@ export const TimeAttackApiAxiosParamCreator = function (configuration?: Configur * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackGet: async (options: RawAxiosRequestConfig = {}): Promise => { + getTimeAttackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { const localVarPath = `/data/doc/time_attack`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -16053,11 +16053,14 @@ export const TimeAttackApiAxiosParamCreator = function (configuration?: Configur }, /** * + * @param {number} ta_comp_season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackMemberSeasonResultsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/time_attack/member_season_results`; + getTimeAttackMemberSeasonResults: async (ta_comp_season_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'ta_comp_season_id' is not null or undefined + assertParamExists('getTimeAttackMemberSeasonResults', 'ta_comp_season_id', ta_comp_season_id) + const localVarPath = `/data/time_attack/member_season_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16073,6 +16076,10 @@ export const TimeAttackApiAxiosParamCreator = function (configuration?: Configur // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (ta_comp_season_id !== undefined) { + localVarQueryParameter['ta_comp_season_id'] = ta_comp_season_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -16086,14 +16093,11 @@ export const TimeAttackApiAxiosParamCreator = function (configuration?: Configur }, /** * - * @param {number} ta_comp_season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTimeAttackMemberSeasonResults: async (ta_comp_season_id: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'ta_comp_season_id' is not null or undefined - assertParamExists('getTimeAttackMemberSeasonResults', 'ta_comp_season_id', ta_comp_season_id) - const localVarPath = `/data/time_attack/member_season_results`; + getTimeAttackMemberSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack/member_season_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16109,10 +16113,6 @@ export const TimeAttackApiAxiosParamCreator = function (configuration?: Configur // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (ta_comp_season_id !== undefined) { - localVarQueryParameter['ta_comp_season_id'] = ta_comp_season_id; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -16138,33 +16138,33 @@ export const TimeAttackApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTimeAttackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackGet(options); + async getTimeAttackDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.dataDocTimeAttackGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} ta_comp_season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTimeAttackMemberSeasonResultsGet(options); + async getTimeAttackMemberSeasonResults(ta_comp_season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackMemberSeasonResults(ta_comp_season_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.dataDocTimeAttackMemberSeasonResultsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackMemberSeasonResults']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} ta_comp_season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getTimeAttackMemberSeasonResults(ta_comp_season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackMemberSeasonResults(ta_comp_season_id, options); + async getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackMemberSeasonResultsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackMemberSeasonResults']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackMemberSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, } @@ -16181,25 +16181,25 @@ export const TimeAttackApiFactory = function (configuration?: Configuration, bas * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocTimeAttackGet(options).then((request) => request(axios, basePath)); + getTimeAttackDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getTimeAttackDocs(options).then((request) => request(axios, basePath)); }, /** * + * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(axios, basePath)); + getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(axios, basePath)); }, /** * - * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(axios, basePath)); + getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTimeAttackMemberSeasonResultsDocs(options).then((request) => request(axios, basePath)); }, }; }; @@ -16220,27 +16220,27 @@ export class TimeAttackApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTimeAttackGet(options?: RawAxiosRequestConfig) { - return TimeAttackApiFp(this.configuration).dataDocTimeAttackGet(options).then((request) => request(this.axios, this.basePath)); + public getTimeAttackDocs(options?: RawAxiosRequestConfig) { + return TimeAttackApiFp(this.configuration).getTimeAttackDocs(options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTimeAttackMemberSeasonResultsGet(options?: RawAxiosRequestConfig) { - return TimeAttackApiFp(this.configuration).dataDocTimeAttackMemberSeasonResultsGet(options).then((request) => request(this.axios, this.basePath)); + public getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig) { + return TimeAttackApiFp(this.configuration).getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig) { - return TimeAttackApiFp(this.configuration).getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(this.axios, this.basePath)); + public getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig) { + return TimeAttackApiFp(this.configuration).getTimeAttackMemberSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); } } @@ -16256,8 +16256,8 @@ export const TrackApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackAssetsGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/assets`; + getTrack: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/track/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16289,8 +16289,8 @@ export const TrackApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track`; + getTrackAssets: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/track/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16322,8 +16322,8 @@ export const TrackApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGetGet: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/get`; + getTrackAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16355,8 +16355,8 @@ export const TrackApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTrack: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/track/get`; + getTrackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16388,8 +16388,8 @@ export const TrackApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTrackAssets: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/track/assets`; + getTrackGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16430,10 +16430,10 @@ export const TrackApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackAssetsGet(options); + async getTrack(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrack(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.dataDocTrackAssetsGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrack']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -16441,10 +16441,10 @@ export const TrackApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTrackGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGet(options); + async getTrackAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackAssets(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.dataDocTrackGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackAssets']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -16452,10 +16452,10 @@ export const TrackApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async dataDocTrackGetGet(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.dataDocTrackGetGet(options); + async getTrackAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackAssetsDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.dataDocTrackGetGet']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackAssetsDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -16463,10 +16463,10 @@ export const TrackApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getTrack(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTrack(options); + async getTrackDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrack']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -16474,10 +16474,10 @@ export const TrackApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getTrackAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackAssets(options); + async getTrackGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackGetDocs(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackAssets']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackGetDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, } @@ -16494,40 +16494,40 @@ export const TrackApiFactory = function (configuration?: Configuration, basePath * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackAssetsGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocTrackAssetsGet(options).then((request) => request(axios, basePath)); + getTrack(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrack(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGet(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.dataDocTrackGet(options).then((request) => request(axios, basePath)); + getTrackAssets(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrackAssets(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - dataDocTrackGetGet(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.dataDocTrackGetGet(options).then((request) => request(axios, basePath)); + getTrackAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrackAssetsDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTrack(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTrack(options).then((request) => request(axios, basePath)); + getTrackDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { + return localVarFp.getTrackDocs(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTrackAssets(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTrackAssets(options).then((request) => request(axios, basePath)); + getTrackGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getTrackGetDocs(options).then((request) => request(axios, basePath)); }, }; }; @@ -16541,8 +16541,8 @@ export class TrackApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTrackAssetsGet(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).dataDocTrackAssetsGet(options).then((request) => request(this.axios, this.basePath)); + public getTrack(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).getTrack(options).then((request) => request(this.axios, this.basePath)); } /** @@ -16550,8 +16550,8 @@ export class TrackApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTrackGet(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).dataDocTrackGet(options).then((request) => request(this.axios, this.basePath)); + public getTrackAssets(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).getTrackAssets(options).then((request) => request(this.axios, this.basePath)); } /** @@ -16559,8 +16559,8 @@ export class TrackApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public dataDocTrackGetGet(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).dataDocTrackGetGet(options).then((request) => request(this.axios, this.basePath)); + public getTrackAssetsDocs(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).getTrackAssetsDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -16568,8 +16568,8 @@ export class TrackApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getTrack(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).getTrack(options).then((request) => request(this.axios, this.basePath)); + public getTrackDocs(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).getTrackDocs(options).then((request) => request(this.axios, this.basePath)); } /** @@ -16577,8 +16577,8 @@ export class TrackApi extends BaseAPI { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getTrackAssets(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).getTrackAssets(options).then((request) => request(this.axios, this.basePath)); + public getTrackGetDocs(options?: RawAxiosRequestConfig) { + return TrackApiFp(this.configuration).getTrackGetDocs(options).then((request) => request(this.axios, this.basePath)); } } diff --git a/packages/api-client/src/client/docs/DocApi.md b/packages/api-client/src/client/docs/DocApi.md index 6d12f6b..30c5c32 100644 --- a/packages/api-client/src/client/docs/DocApi.md +++ b/packages/api-client/src/client/docs/DocApi.md @@ -4,36 +4,6 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**dataDocSeasonSpectatorSubsessionidsDetailGet**](#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | | -|[**dataDocSeasonSpectatorSubsessionidsGet**](#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | | -|[**dataDocSeriesAssetsGet**](#datadocseriesassetsget) | **GET** /data/doc/series/assets | | -|[**dataDocSeriesGet**](#datadocseriesget) | **GET** /data/doc/series | | -|[**dataDocSeriesGetGet**](#datadocseriesgetget) | **GET** /data/doc/series/get | | -|[**dataDocSeriesPastSeasonsGet**](#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | | -|[**dataDocSeriesSeasonListGet**](#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | | -|[**dataDocSeriesSeasonScheduleGet**](#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | | -|[**dataDocSeriesSeasonsGet**](#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | | -|[**dataDocSeriesStatsSeriesGet**](#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | | -|[**dataDocStatsGet**](#datadocstatsget) | **GET** /data/doc/stats | | -|[**dataDocStatsMemberBestsGet**](#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | | -|[**dataDocStatsMemberCareerGet**](#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | | -|[**dataDocStatsMemberDivisionGet**](#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | | -|[**dataDocStatsMemberRecapGet**](#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | | -|[**dataDocStatsMemberRecentRacesGet**](#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | | -|[**dataDocStatsMemberSummaryGet**](#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | | -|[**dataDocStatsMemberYearlyGet**](#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | | -|[**dataDocStatsSeasonDriverStandingsGet**](#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | | -|[**dataDocStatsSeasonQualifyResultsGet**](#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | | -|[**dataDocStatsSeasonSupersessionStandingsGet**](#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | | -|[**dataDocStatsSeasonTeamStandingsGet**](#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | | -|[**dataDocStatsSeasonTtResultsGet**](#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | | -|[**dataDocStatsSeasonTtStandingsGet**](#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | | -|[**dataDocStatsWorldRecordsGet**](#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | | -|[**dataDocTimeAttackGet**](#datadoctimeattackget) | **GET** /data/doc/time_attack | | -|[**dataDocTimeAttackMemberSeasonResultsGet**](#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | | -|[**dataDocTrackAssetsGet**](#datadoctrackassetsget) | **GET** /data/doc/track/assets | | -|[**dataDocTrackGet**](#datadoctrackget) | **GET** /data/doc/track | | -|[**dataDocTrackGetGet**](#datadoctrackgetget) | **GET** /data/doc/track/get | | |[**getCarAssetsDocs**](#getcarassetsdocs) | **GET** /data/doc/car/assets | | |[**getCarClassDocs**](#getcarclassdocs) | **GET** /data/doc/carclass | | |[**getCarClassGetDocs**](#getcarclassgetdocs) | **GET** /data/doc/carclass/get | | @@ -84,12 +54,42 @@ All URIs are relative to *https://members-ng.iracing.com* |[**getSeasonDocs**](#getseasondocs) | **GET** /data/doc/season | | |[**getSeasonListDocs**](#getseasonlistdocs) | **GET** /data/doc/season/list | | |[**getSeasonRaceGuideDocs**](#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | | +|[**getSeasonSpectatorSubsessionIdsDetailDocs**](#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | | +|[**getSeasonSpectatorSubsessionIdsDocs**](#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | | +|[**getSeriesAssetsDocs**](#getseriesassetsdocs) | **GET** /data/doc/series/assets | | +|[**getSeriesDocs**](#getseriesdocs) | **GET** /data/doc/series | | +|[**getSeriesGetDocs**](#getseriesgetdocs) | **GET** /data/doc/series/get | | +|[**getSeriesPastSeasonsDocs**](#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | | +|[**getSeriesSeasonListDocs**](#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | | +|[**getSeriesSeasonScheduleDocs**](#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | | +|[**getSeriesSeasonsDocs**](#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | | +|[**getSeriesStatsSeriesDocs**](#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | | +|[**getStatsDocs**](#getstatsdocs) | **GET** /data/doc/stats | | +|[**getStatsMemberBestsDocs**](#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | | +|[**getStatsMemberCareerDocs**](#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | | +|[**getStatsMemberDivisionDocs**](#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | | +|[**getStatsMemberRecapDocs**](#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | | +|[**getStatsMemberRecentRacesDocs**](#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | | +|[**getStatsMemberSummaryDocs**](#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | | +|[**getStatsMemberYearlyDocs**](#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | | +|[**getStatsSeasonDriverStandingsDocs**](#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | | +|[**getStatsSeasonQualifyResultsDocs**](#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | | +|[**getStatsSeasonSupersessionStandingsDocs**](#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | | +|[**getStatsSeasonTTResultsDocs**](#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | | +|[**getStatsSeasonTTStandingsDocs**](#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | | +|[**getStatsSeasonTeamStandingsDocs**](#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | | +|[**getStatsWorldRecordsDocs**](#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | | |[**getTeamDocs**](#getteamdocs) | **GET** /data/doc/team | | |[**getTeamGetDocs**](#getteamgetdocs) | **GET** /data/doc/team/get | | |[**getTeamMembershipDocs**](#getteammembershipdocs) | **GET** /data/doc/team/membership | | +|[**getTimeAttackDocs**](#gettimeattackdocs) | **GET** /data/doc/time_attack | | +|[**getTimeAttackMemberSeasonResultsDocs**](#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | | +|[**getTrackAssetsDocs**](#gettrackassetsdocs) | **GET** /data/doc/track/assets | | +|[**getTrackDocs**](#gettrackdocs) | **GET** /data/doc/track | | +|[**getTrackGetDocs**](#gettrackgetdocs) | **GET** /data/doc/track/get | | -# **dataDocSeasonSpectatorSubsessionidsDetailGet** -> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsDetailGet() +# **getCarAssetsDocs** +> IracingServiceMethodDocs getCarAssetsDocs() ### Example @@ -103,7 +103,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsDetailGet(); +const { status, data } = await apiInstance.getCarAssetsDocs(); ``` ### Parameters @@ -132,8 +132,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeasonSpectatorSubsessionidsGet** -> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsGet() +# **getCarClassDocs** +> { [key: string]: IracingServiceMethodDocs; } getCarClassDocs() ### Example @@ -147,7 +147,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsGet(); +const { status, data } = await apiInstance.getCarClassDocs(); ``` ### Parameters @@ -156,7 +156,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -176,8 +176,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesAssetsGet** -> IracingServiceMethodDocs dataDocSeriesAssetsGet() +# **getCarClassGetDocs** +> IracingServiceMethodDocs getCarClassGetDocs() ### Example @@ -191,7 +191,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesAssetsGet(); +const { status, data } = await apiInstance.getCarClassGetDocs(); ``` ### Parameters @@ -220,8 +220,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocSeriesGet() +# **getCarDocs** +> { [key: string]: IracingServiceMethodDocs; } getCarDocs() ### Example @@ -235,7 +235,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesGet(); +const { status, data } = await apiInstance.getCarDocs(); ``` ### Parameters @@ -264,8 +264,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesGetGet** -> IracingServiceMethodDocs dataDocSeriesGetGet() +# **getCarGetDocs** +> IracingServiceMethodDocs getCarGetDocs() ### Example @@ -279,7 +279,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesGetGet(); +const { status, data } = await apiInstance.getCarGetDocs(); ``` ### Parameters @@ -308,8 +308,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesPastSeasonsGet** -> IracingServiceMethodDocs dataDocSeriesPastSeasonsGet() +# **getConstantsCategoriesDocs** +> IracingServiceMethodDocs getConstantsCategoriesDocs() ### Example @@ -323,7 +323,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesPastSeasonsGet(); +const { status, data } = await apiInstance.getConstantsCategoriesDocs(); ``` ### Parameters @@ -352,8 +352,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesSeasonListGet** -> IracingServiceMethodDocs dataDocSeriesSeasonListGet() +# **getConstantsDivisionsDocs** +> IracingServiceMethodDocs getConstantsDivisionsDocs() ### Example @@ -367,7 +367,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesSeasonListGet(); +const { status, data } = await apiInstance.getConstantsDivisionsDocs(); ``` ### Parameters @@ -396,8 +396,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesSeasonScheduleGet** -> IracingServiceMethodDocs dataDocSeriesSeasonScheduleGet() +# **getConstantsDocs** +> { [key: string]: IracingServiceMethodDocs; } getConstantsDocs() ### Example @@ -411,7 +411,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesSeasonScheduleGet(); +const { status, data } = await apiInstance.getConstantsDocs(); ``` ### Parameters @@ -420,7 +420,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -440,8 +440,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesSeasonsGet** -> IracingServiceMethodDocs dataDocSeriesSeasonsGet() +# **getConstantsEventTypesDocs** +> IracingServiceMethodDocs getConstantsEventTypesDocs() ### Example @@ -455,7 +455,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesSeasonsGet(); +const { status, data } = await apiInstance.getConstantsEventTypesDocs(); ``` ### Parameters @@ -484,8 +484,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesStatsSeriesGet** -> IracingServiceMethodDocs dataDocSeriesStatsSeriesGet() +# **getDocs** +> { [key: string]: { [key: string]: IracingServiceMethodDocs; }; } getDocs() ### Example @@ -499,7 +499,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesStatsSeriesGet(); +const { status, data } = await apiInstance.getDocs(); ``` ### Parameters @@ -508,7 +508,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }** ### Authorization @@ -528,8 +528,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocStatsGet() +# **getDriverStatsByCategoryCategoryDocs** +> IracingServiceMethodDocs getDriverStatsByCategoryCategoryDocs() ### Example @@ -543,16 +543,23 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsGet(); +let category: IracingCategory; //Racing category. (default to undefined) + +const { status, data } = await apiInstance.getDriverStatsByCategoryCategoryDocs( + category +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **category** | **IracingCategory** | Racing category. | defaults to undefined| ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -572,8 +579,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberBestsGet** -> IracingServiceMethodDocs dataDocStatsMemberBestsGet() +# **getDriverStatsByCategoryDocs** +> { [key: string]: IracingServiceMethodDocs; } getDriverStatsByCategoryDocs() ### Example @@ -587,7 +594,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberBestsGet(); +const { status, data } = await apiInstance.getDriverStatsByCategoryDocs(); ``` ### Parameters @@ -596,7 +603,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -616,8 +623,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberCareerGet** -> IracingServiceMethodDocs dataDocStatsMemberCareerGet() +# **getHostedCombinedSessionsDocs** +> IracingServiceMethodDocs getHostedCombinedSessionsDocs() ### Example @@ -631,7 +638,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberCareerGet(); +const { status, data } = await apiInstance.getHostedCombinedSessionsDocs(); ``` ### Parameters @@ -660,8 +667,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberDivisionGet** -> IracingServiceMethodDocs dataDocStatsMemberDivisionGet() +# **getHostedDocs** +> { [key: string]: IracingServiceMethodDocs; } getHostedDocs() ### Example @@ -675,7 +682,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberDivisionGet(); +const { status, data } = await apiInstance.getHostedDocs(); ``` ### Parameters @@ -684,7 +691,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -704,8 +711,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberRecapGet** -> IracingServiceMethodDocs dataDocStatsMemberRecapGet() +# **getHostedSessionsDocs** +> IracingServiceMethodDocs getHostedSessionsDocs() ### Example @@ -719,7 +726,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberRecapGet(); +const { status, data } = await apiInstance.getHostedSessionsDocs(); ``` ### Parameters @@ -748,8 +755,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberRecentRacesGet** -> IracingServiceMethodDocs dataDocStatsMemberRecentRacesGet() +# **getLeagueCustomerLeagueSessionsDocs** +> IracingServiceMethodDocs getLeagueCustomerLeagueSessionsDocs() ### Example @@ -763,7 +770,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberRecentRacesGet(); +const { status, data } = await apiInstance.getLeagueCustomerLeagueSessionsDocs(); ``` ### Parameters @@ -792,8 +799,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberSummaryGet** -> IracingServiceMethodDocs dataDocStatsMemberSummaryGet() +# **getLeagueDirectoryDocs** +> IracingServiceMethodDocs getLeagueDirectoryDocs() ### Example @@ -807,7 +814,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberSummaryGet(); +const { status, data } = await apiInstance.getLeagueDirectoryDocs(); ``` ### Parameters @@ -836,8 +843,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberYearlyGet** -> IracingServiceMethodDocs dataDocStatsMemberYearlyGet() +# **getLeagueDocs** +> { [key: string]: IracingServiceMethodDocs; } getLeagueDocs() ### Example @@ -851,7 +858,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberYearlyGet(); +const { status, data } = await apiInstance.getLeagueDocs(); ``` ### Parameters @@ -860,7 +867,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -880,8 +887,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonDriverStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonDriverStandingsGet() +# **getLeagueGetDocs** +> IracingServiceMethodDocs getLeagueGetDocs() ### Example @@ -895,7 +902,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonDriverStandingsGet(); +const { status, data } = await apiInstance.getLeagueGetDocs(); ``` ### Parameters @@ -924,8 +931,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonQualifyResultsGet** -> IracingServiceMethodDocs dataDocStatsSeasonQualifyResultsGet() +# **getLeagueGetPointsSystemsDocs** +> IracingServiceMethodDocs getLeagueGetPointsSystemsDocs() ### Example @@ -939,7 +946,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonQualifyResultsGet(); +const { status, data } = await apiInstance.getLeagueGetPointsSystemsDocs(); ``` ### Parameters @@ -968,8 +975,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonSupersessionStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonSupersessionStandingsGet() +# **getLeagueMembershipDocs** +> IracingServiceMethodDocs getLeagueMembershipDocs() ### Example @@ -983,7 +990,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonSupersessionStandingsGet(); +const { status, data } = await apiInstance.getLeagueMembershipDocs(); ``` ### Parameters @@ -1012,8 +1019,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonTeamStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonTeamStandingsGet() +# **getLeagueRosterDocs** +> IracingServiceMethodDocs getLeagueRosterDocs() ### Example @@ -1027,7 +1034,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonTeamStandingsGet(); +const { status, data } = await apiInstance.getLeagueRosterDocs(); ``` ### Parameters @@ -1056,8 +1063,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonTtResultsGet** -> IracingServiceMethodDocs dataDocStatsSeasonTtResultsGet() +# **getLeagueSeasonSessionsDocs** +> IracingServiceMethodDocs getLeagueSeasonSessionsDocs() ### Example @@ -1071,7 +1078,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonTtResultsGet(); +const { status, data } = await apiInstance.getLeagueSeasonSessionsDocs(); ``` ### Parameters @@ -1100,8 +1107,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonTtStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonTtStandingsGet() +# **getLeagueSeasonStandingsDocs** +> IracingServiceMethodDocs getLeagueSeasonStandingsDocs() ### Example @@ -1115,7 +1122,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonTtStandingsGet(); +const { status, data } = await apiInstance.getLeagueSeasonStandingsDocs(); ``` ### Parameters @@ -1144,8 +1151,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsWorldRecordsGet** -> IracingServiceMethodDocs dataDocStatsWorldRecordsGet() +# **getLeagueSeasonsDocs** +> IracingServiceMethodDocs getLeagueSeasonsDocs() ### Example @@ -1159,7 +1166,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocStatsWorldRecordsGet(); +const { status, data } = await apiInstance.getLeagueSeasonsDocs(); ``` ### Parameters @@ -1188,8 +1195,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTimeAttackGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocTimeAttackGet() +# **getLookupCountriesDocs** +> IracingServiceMethodDocs getLookupCountriesDocs() ### Example @@ -1203,7 +1210,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocTimeAttackGet(); +const { status, data } = await apiInstance.getLookupCountriesDocs(); ``` ### Parameters @@ -1212,7 +1219,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -1232,8 +1239,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTimeAttackMemberSeasonResultsGet** -> IracingServiceMethodDocs dataDocTimeAttackMemberSeasonResultsGet() +# **getLookupDocs** +> { [key: string]: IracingServiceMethodDocs; } getLookupDocs() ### Example @@ -1247,7 +1254,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocTimeAttackMemberSeasonResultsGet(); +const { status, data } = await apiInstance.getLookupDocs(); ``` ### Parameters @@ -1256,7 +1263,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -1276,8 +1283,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTrackAssetsGet** -> IracingServiceMethodDocs dataDocTrackAssetsGet() +# **getLookupDriversDocs** +> IracingServiceMethodDocs getLookupDriversDocs() ### Example @@ -1291,7 +1298,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocTrackAssetsGet(); +const { status, data } = await apiInstance.getLookupDriversDocs(); ``` ### Parameters @@ -1320,8 +1327,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTrackGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocTrackGet() +# **getLookupFlairsDocs** +> IracingServiceMethodDocs getLookupFlairsDocs() ### Example @@ -1335,7 +1342,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocTrackGet(); +const { status, data } = await apiInstance.getLookupFlairsDocs(); ``` ### Parameters @@ -1344,7 +1351,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -1364,8 +1371,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTrackGetGet** -> IracingServiceMethodDocs dataDocTrackGetGet() +# **getLookupGetDocs** +> IracingServiceMethodDocs getLookupGetDocs() ### Example @@ -1379,7 +1386,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.dataDocTrackGetGet(); +const { status, data } = await apiInstance.getLookupGetDocs(); ``` ### Parameters @@ -1408,8 +1415,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getCarAssetsDocs** -> IracingServiceMethodDocs getCarAssetsDocs() +# **getLookupLicensesDocs** +> IracingServiceMethodDocs getLookupLicensesDocs() ### Example @@ -1423,7 +1430,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getCarAssetsDocs(); +const { status, data } = await apiInstance.getLookupLicensesDocs(); ``` ### Parameters @@ -1452,8 +1459,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getCarClassDocs** -> { [key: string]: IracingServiceMethodDocs; } getCarClassDocs() +# **getMemberAwardInstancesDocs** +> IracingServiceMethodDocs getMemberAwardInstancesDocs() ### Example @@ -1467,7 +1474,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getCarClassDocs(); +const { status, data } = await apiInstance.getMemberAwardInstancesDocs(); ``` ### Parameters @@ -1476,7 +1483,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -1496,8 +1503,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getCarClassGetDocs** -> IracingServiceMethodDocs getCarClassGetDocs() +# **getMemberAwardsDocs** +> IracingServiceMethodDocs getMemberAwardsDocs() ### Example @@ -1511,7 +1518,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getCarClassGetDocs(); +const { status, data } = await apiInstance.getMemberAwardsDocs(); ``` ### Parameters @@ -1540,8 +1547,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getCarDocs** -> { [key: string]: IracingServiceMethodDocs; } getCarDocs() +# **getMemberChartDataDocs** +> IracingServiceMethodDocs getMemberChartDataDocs() ### Example @@ -1555,7 +1562,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getCarDocs(); +const { status, data } = await apiInstance.getMemberChartDataDocs(); ``` ### Parameters @@ -1564,7 +1571,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -1584,8 +1591,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getCarGetDocs** -> IracingServiceMethodDocs getCarGetDocs() +# **getMemberDocs** +> { [key: string]: IracingServiceMethodDocs; } getMemberDocs() ### Example @@ -1599,7 +1606,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getCarGetDocs(); +const { status, data } = await apiInstance.getMemberDocs(); ``` ### Parameters @@ -1608,7 +1615,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -1628,8 +1635,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getConstantsCategoriesDocs** -> IracingServiceMethodDocs getConstantsCategoriesDocs() +# **getMemberGetDocs** +> IracingServiceMethodDocs getMemberGetDocs() ### Example @@ -1643,7 +1650,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getConstantsCategoriesDocs(); +const { status, data } = await apiInstance.getMemberGetDocs(); ``` ### Parameters @@ -1672,8 +1679,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getConstantsDivisionsDocs** -> IracingServiceMethodDocs getConstantsDivisionsDocs() +# **getMemberInfoDocs** +> IracingServiceMethodDocs getMemberInfoDocs() ### Example @@ -1687,7 +1694,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getConstantsDivisionsDocs(); +const { status, data } = await apiInstance.getMemberInfoDocs(); ``` ### Parameters @@ -1716,8 +1723,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getConstantsDocs** -> { [key: string]: IracingServiceMethodDocs; } getConstantsDocs() +# **getMemberParticipationCreditsDocs** +> IracingServiceMethodDocs getMemberParticipationCreditsDocs() ### Example @@ -1731,7 +1738,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getConstantsDocs(); +const { status, data } = await apiInstance.getMemberParticipationCreditsDocs(); ``` ### Parameters @@ -1740,7 +1747,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -1760,8 +1767,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getConstantsEventTypesDocs** -> IracingServiceMethodDocs getConstantsEventTypesDocs() +# **getMemberProfileDocs** +> IracingServiceMethodDocs getMemberProfileDocs() ### Example @@ -1775,7 +1782,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getConstantsEventTypesDocs(); +const { status, data } = await apiInstance.getMemberProfileDocs(); ``` ### Parameters @@ -1804,8 +1811,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getDocs** -> { [key: string]: { [key: string]: IracingServiceMethodDocs; }; } getDocs() +# **getResultsDocs** +> { [key: string]: IracingServiceMethodDocs; } getResultsDocs() ### Example @@ -1819,7 +1826,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getDocs(); +const { status, data } = await apiInstance.getResultsDocs(); ``` ### Parameters @@ -1828,7 +1835,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -1848,8 +1855,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getDriverStatsByCategoryCategoryDocs** -> IracingServiceMethodDocs getDriverStatsByCategoryCategoryDocs() +# **getResultsEventLogDocs** +> IracingServiceMethodDocs getResultsEventLogDocs() ### Example @@ -1863,18 +1870,11 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -let category: IracingCategory; //Racing category. (default to undefined) - -const { status, data } = await apiInstance.getDriverStatsByCategoryCategoryDocs( - category -); +const { status, data } = await apiInstance.getResultsEventLogDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **category** | **IracingCategory** | Racing category. | defaults to undefined| +This endpoint does not have any parameters. ### Return type @@ -1899,8 +1899,8 @@ const { status, data } = await apiInstance.getDriverStatsByCategoryCategoryDocs( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getDriverStatsByCategoryDocs** -> { [key: string]: IracingServiceMethodDocs; } getDriverStatsByCategoryDocs() +# **getResultsGetDocs** +> IracingServiceMethodDocs getResultsGetDocs() ### Example @@ -1914,7 +1914,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getDriverStatsByCategoryDocs(); +const { status, data } = await apiInstance.getResultsGetDocs(); ``` ### Parameters @@ -1923,7 +1923,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -1943,8 +1943,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getHostedCombinedSessionsDocs** -> IracingServiceMethodDocs getHostedCombinedSessionsDocs() +# **getResultsLapChartDataDocs** +> IracingServiceMethodDocs getResultsLapChartDataDocs() ### Example @@ -1958,7 +1958,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getHostedCombinedSessionsDocs(); +const { status, data } = await apiInstance.getResultsLapChartDataDocs(); ``` ### Parameters @@ -1987,8 +1987,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getHostedDocs** -> { [key: string]: IracingServiceMethodDocs; } getHostedDocs() +# **getResultsLapDataDocs** +> IracingServiceMethodDocs getResultsLapDataDocs() ### Example @@ -2002,7 +2002,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getHostedDocs(); +const { status, data } = await apiInstance.getResultsLapDataDocs(); ``` ### Parameters @@ -2011,7 +2011,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -2031,8 +2031,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getHostedSessionsDocs** -> IracingServiceMethodDocs getHostedSessionsDocs() +# **getResultsSearchHostedDocs** +> IracingServiceMethodDocs getResultsSearchHostedDocs() ### Example @@ -2046,7 +2046,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getHostedSessionsDocs(); +const { status, data } = await apiInstance.getResultsSearchHostedDocs(); ``` ### Parameters @@ -2075,8 +2075,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueCustomerLeagueSessionsDocs** -> IracingServiceMethodDocs getLeagueCustomerLeagueSessionsDocs() +# **getResultsSearchSeriesDocs** +> IracingServiceMethodDocs getResultsSearchSeriesDocs() ### Example @@ -2090,7 +2090,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueCustomerLeagueSessionsDocs(); +const { status, data } = await apiInstance.getResultsSearchSeriesDocs(); ``` ### Parameters @@ -2119,8 +2119,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueDirectoryDocs** -> IracingServiceMethodDocs getLeagueDirectoryDocs() +# **getResultsSeasonResultsDocs** +> IracingServiceMethodDocs getResultsSeasonResultsDocs() ### Example @@ -2134,7 +2134,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueDirectoryDocs(); +const { status, data } = await apiInstance.getResultsSeasonResultsDocs(); ``` ### Parameters @@ -2163,8 +2163,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueDocs** -> { [key: string]: IracingServiceMethodDocs; } getLeagueDocs() +# **getSeasonDocs** +> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() ### Example @@ -2178,7 +2178,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueDocs(); +const { status, data } = await apiInstance.getSeasonDocs(); ``` ### Parameters @@ -2207,8 +2207,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueGetDocs** -> IracingServiceMethodDocs getLeagueGetDocs() +# **getSeasonListDocs** +> IracingServiceMethodDocs getSeasonListDocs() ### Example @@ -2222,7 +2222,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueGetDocs(); +const { status, data } = await apiInstance.getSeasonListDocs(); ``` ### Parameters @@ -2251,8 +2251,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueGetPointsSystemsDocs** -> IracingServiceMethodDocs getLeagueGetPointsSystemsDocs() +# **getSeasonRaceGuideDocs** +> IracingServiceMethodDocs getSeasonRaceGuideDocs() ### Example @@ -2266,7 +2266,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueGetPointsSystemsDocs(); +const { status, data } = await apiInstance.getSeasonRaceGuideDocs(); ``` ### Parameters @@ -2295,8 +2295,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueMembershipDocs** -> IracingServiceMethodDocs getLeagueMembershipDocs() +# **getSeasonSpectatorSubsessionIdsDetailDocs** +> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDetailDocs() ### Example @@ -2310,7 +2310,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueMembershipDocs(); +const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDetailDocs(); ``` ### Parameters @@ -2339,8 +2339,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueRosterDocs** -> IracingServiceMethodDocs getLeagueRosterDocs() +# **getSeasonSpectatorSubsessionIdsDocs** +> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDocs() ### Example @@ -2354,7 +2354,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueRosterDocs(); +const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDocs(); ``` ### Parameters @@ -2383,8 +2383,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueSeasonSessionsDocs** -> IracingServiceMethodDocs getLeagueSeasonSessionsDocs() +# **getSeriesAssetsDocs** +> IracingServiceMethodDocs getSeriesAssetsDocs() ### Example @@ -2398,7 +2398,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueSeasonSessionsDocs(); +const { status, data } = await apiInstance.getSeriesAssetsDocs(); ``` ### Parameters @@ -2427,8 +2427,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueSeasonStandingsDocs** -> IracingServiceMethodDocs getLeagueSeasonStandingsDocs() +# **getSeriesDocs** +> { [key: string]: IracingServiceMethodDocs; } getSeriesDocs() ### Example @@ -2442,7 +2442,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueSeasonStandingsDocs(); +const { status, data } = await apiInstance.getSeriesDocs(); ``` ### Parameters @@ -2451,7 +2451,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -2471,8 +2471,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueSeasonsDocs** -> IracingServiceMethodDocs getLeagueSeasonsDocs() +# **getSeriesGetDocs** +> IracingServiceMethodDocs getSeriesGetDocs() ### Example @@ -2486,7 +2486,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLeagueSeasonsDocs(); +const { status, data } = await apiInstance.getSeriesGetDocs(); ``` ### Parameters @@ -2515,8 +2515,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLookupCountriesDocs** -> IracingServiceMethodDocs getLookupCountriesDocs() +# **getSeriesPastSeasonsDocs** +> IracingServiceMethodDocs getSeriesPastSeasonsDocs() ### Example @@ -2530,7 +2530,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLookupCountriesDocs(); +const { status, data } = await apiInstance.getSeriesPastSeasonsDocs(); ``` ### Parameters @@ -2559,8 +2559,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLookupDocs** -> { [key: string]: IracingServiceMethodDocs; } getLookupDocs() +# **getSeriesSeasonListDocs** +> IracingServiceMethodDocs getSeriesSeasonListDocs() ### Example @@ -2574,7 +2574,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLookupDocs(); +const { status, data } = await apiInstance.getSeriesSeasonListDocs(); ``` ### Parameters @@ -2583,7 +2583,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -2603,8 +2603,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLookupDriversDocs** -> IracingServiceMethodDocs getLookupDriversDocs() +# **getSeriesSeasonScheduleDocs** +> IracingServiceMethodDocs getSeriesSeasonScheduleDocs() ### Example @@ -2618,7 +2618,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLookupDriversDocs(); +const { status, data } = await apiInstance.getSeriesSeasonScheduleDocs(); ``` ### Parameters @@ -2647,8 +2647,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLookupFlairsDocs** -> IracingServiceMethodDocs getLookupFlairsDocs() +# **getSeriesSeasonsDocs** +> IracingServiceMethodDocs getSeriesSeasonsDocs() ### Example @@ -2662,7 +2662,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLookupFlairsDocs(); +const { status, data } = await apiInstance.getSeriesSeasonsDocs(); ``` ### Parameters @@ -2691,8 +2691,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLookupGetDocs** -> IracingServiceMethodDocs getLookupGetDocs() +# **getSeriesStatsSeriesDocs** +> IracingServiceMethodDocs getSeriesStatsSeriesDocs() ### Example @@ -2706,7 +2706,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLookupGetDocs(); +const { status, data } = await apiInstance.getSeriesStatsSeriesDocs(); ``` ### Parameters @@ -2735,8 +2735,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLookupLicensesDocs** -> IracingServiceMethodDocs getLookupLicensesDocs() +# **getStatsDocs** +> { [key: string]: IracingServiceMethodDocs; } getStatsDocs() ### Example @@ -2750,7 +2750,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getLookupLicensesDocs(); +const { status, data } = await apiInstance.getStatsDocs(); ``` ### Parameters @@ -2759,7 +2759,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -2779,8 +2779,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberAwardInstancesDocs** -> IracingServiceMethodDocs getMemberAwardInstancesDocs() +# **getStatsMemberBestsDocs** +> IracingServiceMethodDocs getStatsMemberBestsDocs() ### Example @@ -2794,7 +2794,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberAwardInstancesDocs(); +const { status, data } = await apiInstance.getStatsMemberBestsDocs(); ``` ### Parameters @@ -2823,8 +2823,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberAwardsDocs** -> IracingServiceMethodDocs getMemberAwardsDocs() +# **getStatsMemberCareerDocs** +> IracingServiceMethodDocs getStatsMemberCareerDocs() ### Example @@ -2838,7 +2838,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberAwardsDocs(); +const { status, data } = await apiInstance.getStatsMemberCareerDocs(); ``` ### Parameters @@ -2867,8 +2867,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberChartDataDocs** -> IracingServiceMethodDocs getMemberChartDataDocs() +# **getStatsMemberDivisionDocs** +> IracingServiceMethodDocs getStatsMemberDivisionDocs() ### Example @@ -2882,7 +2882,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberChartDataDocs(); +const { status, data } = await apiInstance.getStatsMemberDivisionDocs(); ``` ### Parameters @@ -2911,8 +2911,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberDocs** -> { [key: string]: IracingServiceMethodDocs; } getMemberDocs() +# **getStatsMemberRecapDocs** +> IracingServiceMethodDocs getStatsMemberRecapDocs() ### Example @@ -2926,7 +2926,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberDocs(); +const { status, data } = await apiInstance.getStatsMemberRecapDocs(); ``` ### Parameters @@ -2935,7 +2935,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -2955,8 +2955,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberGetDocs** -> IracingServiceMethodDocs getMemberGetDocs() +# **getStatsMemberRecentRacesDocs** +> IracingServiceMethodDocs getStatsMemberRecentRacesDocs() ### Example @@ -2970,7 +2970,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberGetDocs(); +const { status, data } = await apiInstance.getStatsMemberRecentRacesDocs(); ``` ### Parameters @@ -2999,8 +2999,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberInfoDocs** -> IracingServiceMethodDocs getMemberInfoDocs() +# **getStatsMemberSummaryDocs** +> IracingServiceMethodDocs getStatsMemberSummaryDocs() ### Example @@ -3014,7 +3014,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberInfoDocs(); +const { status, data } = await apiInstance.getStatsMemberSummaryDocs(); ``` ### Parameters @@ -3043,8 +3043,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberParticipationCreditsDocs** -> IracingServiceMethodDocs getMemberParticipationCreditsDocs() +# **getStatsMemberYearlyDocs** +> IracingServiceMethodDocs getStatsMemberYearlyDocs() ### Example @@ -3058,7 +3058,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberParticipationCreditsDocs(); +const { status, data } = await apiInstance.getStatsMemberYearlyDocs(); ``` ### Parameters @@ -3087,8 +3087,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberProfileDocs** -> IracingServiceMethodDocs getMemberProfileDocs() +# **getStatsSeasonDriverStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonDriverStandingsDocs() ### Example @@ -3102,7 +3102,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getMemberProfileDocs(); +const { status, data } = await apiInstance.getStatsSeasonDriverStandingsDocs(); ``` ### Parameters @@ -3131,8 +3131,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsDocs** -> { [key: string]: IracingServiceMethodDocs; } getResultsDocs() +# **getStatsSeasonQualifyResultsDocs** +> IracingServiceMethodDocs getStatsSeasonQualifyResultsDocs() ### Example @@ -3146,7 +3146,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsDocs(); +const { status, data } = await apiInstance.getStatsSeasonQualifyResultsDocs(); ``` ### Parameters @@ -3155,7 +3155,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -3175,8 +3175,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsEventLogDocs** -> IracingServiceMethodDocs getResultsEventLogDocs() +# **getStatsSeasonSupersessionStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonSupersessionStandingsDocs() ### Example @@ -3190,7 +3190,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsEventLogDocs(); +const { status, data } = await apiInstance.getStatsSeasonSupersessionStandingsDocs(); ``` ### Parameters @@ -3219,8 +3219,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsGetDocs** -> IracingServiceMethodDocs getResultsGetDocs() +# **getStatsSeasonTTResultsDocs** +> IracingServiceMethodDocs getStatsSeasonTTResultsDocs() ### Example @@ -3234,7 +3234,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsGetDocs(); +const { status, data } = await apiInstance.getStatsSeasonTTResultsDocs(); ``` ### Parameters @@ -3263,8 +3263,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsLapChartDataDocs** -> IracingServiceMethodDocs getResultsLapChartDataDocs() +# **getStatsSeasonTTStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonTTStandingsDocs() ### Example @@ -3278,7 +3278,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsLapChartDataDocs(); +const { status, data } = await apiInstance.getStatsSeasonTTStandingsDocs(); ``` ### Parameters @@ -3307,8 +3307,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsLapDataDocs** -> IracingServiceMethodDocs getResultsLapDataDocs() +# **getStatsSeasonTeamStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonTeamStandingsDocs() ### Example @@ -3322,7 +3322,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsLapDataDocs(); +const { status, data } = await apiInstance.getStatsSeasonTeamStandingsDocs(); ``` ### Parameters @@ -3351,8 +3351,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsSearchHostedDocs** -> IracingServiceMethodDocs getResultsSearchHostedDocs() +# **getStatsWorldRecordsDocs** +> IracingServiceMethodDocs getStatsWorldRecordsDocs() ### Example @@ -3366,7 +3366,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsSearchHostedDocs(); +const { status, data } = await apiInstance.getStatsWorldRecordsDocs(); ``` ### Parameters @@ -3395,8 +3395,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsSearchSeriesDocs** -> IracingServiceMethodDocs getResultsSearchSeriesDocs() +# **getTeamDocs** +> { [key: string]: IracingServiceMethodDocs; } getTeamDocs() ### Example @@ -3410,7 +3410,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsSearchSeriesDocs(); +const { status, data } = await apiInstance.getTeamDocs(); ``` ### Parameters @@ -3419,7 +3419,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -3439,8 +3439,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsSeasonResultsDocs** -> IracingServiceMethodDocs getResultsSeasonResultsDocs() +# **getTeamGetDocs** +> IracingServiceMethodDocs getTeamGetDocs() ### Example @@ -3454,7 +3454,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getResultsSeasonResultsDocs(); +const { status, data } = await apiInstance.getTeamGetDocs(); ``` ### Parameters @@ -3483,8 +3483,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonDocs** -> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() +# **getTeamMembershipDocs** +> IracingServiceMethodDocs getTeamMembershipDocs() ### Example @@ -3498,7 +3498,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getSeasonDocs(); +const { status, data } = await apiInstance.getTeamMembershipDocs(); ``` ### Parameters @@ -3507,7 +3507,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -3527,8 +3527,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonListDocs** -> IracingServiceMethodDocs getSeasonListDocs() +# **getTimeAttackDocs** +> { [key: string]: IracingServiceMethodDocs; } getTimeAttackDocs() ### Example @@ -3542,7 +3542,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getSeasonListDocs(); +const { status, data } = await apiInstance.getTimeAttackDocs(); ``` ### Parameters @@ -3551,7 +3551,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -3571,8 +3571,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonRaceGuideDocs** -> IracingServiceMethodDocs getSeasonRaceGuideDocs() +# **getTimeAttackMemberSeasonResultsDocs** +> IracingServiceMethodDocs getTimeAttackMemberSeasonResultsDocs() ### Example @@ -3586,7 +3586,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getSeasonRaceGuideDocs(); +const { status, data } = await apiInstance.getTimeAttackMemberSeasonResultsDocs(); ``` ### Parameters @@ -3615,8 +3615,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getTeamDocs** -> { [key: string]: IracingServiceMethodDocs; } getTeamDocs() +# **getTrackAssetsDocs** +> IracingServiceMethodDocs getTrackAssetsDocs() ### Example @@ -3630,7 +3630,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getTeamDocs(); +const { status, data } = await apiInstance.getTrackAssetsDocs(); ``` ### Parameters @@ -3639,7 +3639,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -3659,8 +3659,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getTeamGetDocs** -> IracingServiceMethodDocs getTeamGetDocs() +# **getTrackDocs** +> { [key: string]: IracingServiceMethodDocs; } getTrackDocs() ### Example @@ -3674,7 +3674,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getTeamGetDocs(); +const { status, data } = await apiInstance.getTrackDocs(); ``` ### Parameters @@ -3683,7 +3683,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -3703,8 +3703,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getTeamMembershipDocs** -> IracingServiceMethodDocs getTeamMembershipDocs() +# **getTrackGetDocs** +> IracingServiceMethodDocs getTrackGetDocs() ### Example @@ -3718,7 +3718,7 @@ import { const configuration = new Configuration(); const apiInstance = new DocApi(configuration); -const { status, data } = await apiInstance.getTeamMembershipDocs(); +const { status, data } = await apiInstance.getTrackGetDocs(); ``` ### Parameters diff --git a/packages/api-client/src/client/docs/SeasonApi.md b/packages/api-client/src/client/docs/SeasonApi.md index 9dc9899..3e8bcf5 100644 --- a/packages/api-client/src/client/docs/SeasonApi.md +++ b/packages/api-client/src/client/docs/SeasonApi.md @@ -4,16 +4,16 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**dataDocSeasonSpectatorSubsessionidsDetailGet**](#datadocseasonspectatorsubsessionidsdetailget) | **GET** /data/doc/season/spectator_subsessionids_detail | | -|[**dataDocSeasonSpectatorSubsessionidsGet**](#datadocseasonspectatorsubsessionidsget) | **GET** /data/doc/season/spectator_subsessionids | | |[**getSeasonDocs**](#getseasondocs) | **GET** /data/doc/season | | |[**getSeasonList**](#getseasonlist) | **GET** /data/season/list | | |[**getSeasonListDocs**](#getseasonlistdocs) | **GET** /data/doc/season/list | | |[**getSeasonRaceGuide**](#getseasonraceguide) | **GET** /data/season/race_guide | | |[**getSeasonRaceGuideDocs**](#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | | +|[**getSeasonSpectatorSubsessionIdsDetailDocs**](#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | | +|[**getSeasonSpectatorSubsessionIdsDocs**](#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | | -# **dataDocSeasonSpectatorSubsessionidsDetailGet** -> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsDetailGet() +# **getSeasonDocs** +> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() ### Example @@ -27,7 +27,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); -const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsDetailGet(); +const { status, data } = await apiInstance.getSeasonDocs(); ``` ### Parameters @@ -36,7 +36,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -56,8 +56,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeasonSpectatorSubsessionidsGet** -> IracingServiceMethodDocs dataDocSeasonSpectatorSubsessionidsGet() +# **getSeasonList** +> IracingAPIResponse getSeasonList() ### Example @@ -71,16 +71,26 @@ import { const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); -const { status, data } = await apiInstance.dataDocSeasonSpectatorSubsessionidsGet(); +let season_year: number; // (default to undefined) +let season_quarter: number; // (default to undefined) + +const { status, data } = await apiInstance.getSeasonList( + season_year, + season_quarter +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_year** | [**number**] | | defaults to undefined| +| **season_quarter** | [**number**] | | defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -95,13 +105,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonDocs** -> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() +# **getSeasonListDocs** +> IracingServiceMethodDocs getSeasonListDocs() ### Example @@ -115,7 +127,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); -const { status, data } = await apiInstance.getSeasonDocs(); +const { status, data } = await apiInstance.getSeasonListDocs(); ``` ### Parameters @@ -124,7 +136,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingServiceMethodDocs** ### Authorization @@ -144,8 +156,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonList** -> IracingAPIResponse getSeasonList() +# **getSeasonRaceGuide** +> IracingAPIResponse getSeasonRaceGuide() ### Example @@ -159,12 +171,12 @@ import { const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); -let season_year: number; // (default to undefined) -let season_quarter: number; // (default to undefined) +let from: string; //ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. (optional) (default to undefined) +let include_end_after_from: boolean; //Include sessions which start before \'from\' but end after. (optional) (default to undefined) -const { status, data } = await apiInstance.getSeasonList( - season_year, - season_quarter +const { status, data } = await apiInstance.getSeasonRaceGuide( + from, + include_end_after_from ); ``` @@ -172,8 +184,8 @@ const { status, data } = await apiInstance.getSeasonList( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **season_year** | [**number**] | | defaults to undefined| -| **season_quarter** | [**number**] | | defaults to undefined| +| **from** | [**string**] | ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. | (optional) defaults to undefined| +| **include_end_after_from** | [**boolean**] | Include sessions which start before \'from\' but end after. | (optional) defaults to undefined| ### Return type @@ -200,8 +212,8 @@ const { status, data } = await apiInstance.getSeasonList( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonListDocs** -> IracingServiceMethodDocs getSeasonListDocs() +# **getSeasonRaceGuideDocs** +> IracingServiceMethodDocs getSeasonRaceGuideDocs() ### Example @@ -215,7 +227,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); -const { status, data } = await apiInstance.getSeasonListDocs(); +const { status, data } = await apiInstance.getSeasonRaceGuideDocs(); ``` ### Parameters @@ -244,8 +256,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonRaceGuide** -> IracingAPIResponse getSeasonRaceGuide() +# **getSeasonSpectatorSubsessionIdsDetailDocs** +> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDetailDocs() ### Example @@ -259,26 +271,16 @@ import { const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); -let from: string; //ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. (optional) (default to undefined) -let include_end_after_from: boolean; //Include sessions which start before \'from\' but end after. (optional) (default to undefined) - -const { status, data } = await apiInstance.getSeasonRaceGuide( - from, - include_end_after_from -); +const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDetailDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **from** | [**string**] | ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. | (optional) defaults to undefined| -| **include_end_after_from** | [**boolean**] | Include sessions which start before \'from\' but end after. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -293,15 +295,13 @@ const { status, data } = await apiInstance.getSeasonRaceGuide( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonRaceGuideDocs** -> IracingServiceMethodDocs getSeasonRaceGuideDocs() +# **getSeasonSpectatorSubsessionIdsDocs** +> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDocs() ### Example @@ -315,7 +315,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); -const { status, data } = await apiInstance.getSeasonRaceGuideDocs(); +const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDocs(); ``` ### Parameters diff --git a/packages/api-client/src/client/docs/SeriesApi.md b/packages/api-client/src/client/docs/SeriesApi.md index 6af309f..4606a64 100644 --- a/packages/api-client/src/client/docs/SeriesApi.md +++ b/packages/api-client/src/client/docs/SeriesApi.md @@ -4,24 +4,24 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**dataDocSeriesAssetsGet**](#datadocseriesassetsget) | **GET** /data/doc/series/assets | | -|[**dataDocSeriesGet**](#datadocseriesget) | **GET** /data/doc/series | | -|[**dataDocSeriesGetGet**](#datadocseriesgetget) | **GET** /data/doc/series/get | | -|[**dataDocSeriesPastSeasonsGet**](#datadocseriespastseasonsget) | **GET** /data/doc/series/past_seasons | | -|[**dataDocSeriesSeasonListGet**](#datadocseriesseasonlistget) | **GET** /data/doc/series/season_list | | -|[**dataDocSeriesSeasonScheduleGet**](#datadocseriesseasonscheduleget) | **GET** /data/doc/series/season_schedule | | -|[**dataDocSeriesSeasonsGet**](#datadocseriesseasonsget) | **GET** /data/doc/series/seasons | | -|[**dataDocSeriesStatsSeriesGet**](#datadocseriesstatsseriesget) | **GET** /data/doc/series/stats_series | | |[**getSeries**](#getseries) | **GET** /data/series/get | | |[**getSeriesAssets**](#getseriesassets) | **GET** /data/series/assets | | +|[**getSeriesAssetsDocs**](#getseriesassetsdocs) | **GET** /data/doc/series/assets | | +|[**getSeriesDocs**](#getseriesdocs) | **GET** /data/doc/series | | +|[**getSeriesGetDocs**](#getseriesgetdocs) | **GET** /data/doc/series/get | | |[**getSeriesPastSeasons**](#getseriespastseasons) | **GET** /data/series/past_seasons | | +|[**getSeriesPastSeasonsDocs**](#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | | |[**getSeriesSeasonList**](#getseriesseasonlist) | **GET** /data/series/season_list | | +|[**getSeriesSeasonListDocs**](#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | | |[**getSeriesSeasonSchedule**](#getseriesseasonschedule) | **GET** /data/series/season_schedule | | +|[**getSeriesSeasonScheduleDocs**](#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | | |[**getSeriesSeasons**](#getseriesseasons) | **GET** /data/series/seasons | | +|[**getSeriesSeasonsDocs**](#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | | |[**getSeriesStatsSeries**](#getseriesstatsseries) | **GET** /data/series/stats_series | | +|[**getSeriesStatsSeriesDocs**](#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | | -# **dataDocSeriesAssetsGet** -> IracingServiceMethodDocs dataDocSeriesAssetsGet() +# **getSeries** +> IracingAPIResponse getSeries() ### Example @@ -35,7 +35,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesAssetsGet(); +const { status, data } = await apiInstance.getSeries(); ``` ### Parameters @@ -44,7 +44,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -59,13 +59,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocSeriesGet() +# **getSeriesAssets** +> IracingAPIResponse getSeriesAssets() ### Example @@ -79,7 +81,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesGet(); +const { status, data } = await apiInstance.getSeriesAssets(); ``` ### Parameters @@ -88,7 +90,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingAPIResponse** ### Authorization @@ -103,13 +105,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesGetGet** -> IracingServiceMethodDocs dataDocSeriesGetGet() +# **getSeriesAssetsDocs** +> IracingServiceMethodDocs getSeriesAssetsDocs() ### Example @@ -123,7 +127,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesGetGet(); +const { status, data } = await apiInstance.getSeriesAssetsDocs(); ``` ### Parameters @@ -152,8 +156,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesPastSeasonsGet** -> IracingServiceMethodDocs dataDocSeriesPastSeasonsGet() +# **getSeriesDocs** +> { [key: string]: IracingServiceMethodDocs; } getSeriesDocs() ### Example @@ -167,7 +171,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesPastSeasonsGet(); +const { status, data } = await apiInstance.getSeriesDocs(); ``` ### Parameters @@ -176,7 +180,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -196,8 +200,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesSeasonListGet** -> IracingServiceMethodDocs dataDocSeriesSeasonListGet() +# **getSeriesGetDocs** +> IracingServiceMethodDocs getSeriesGetDocs() ### Example @@ -211,7 +215,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesSeasonListGet(); +const { status, data } = await apiInstance.getSeriesGetDocs(); ``` ### Parameters @@ -240,8 +244,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesSeasonScheduleGet** -> IracingServiceMethodDocs dataDocSeriesSeasonScheduleGet() +# **getSeriesPastSeasons** +> IracingAPIResponse getSeriesPastSeasons() ### Example @@ -255,16 +259,23 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesSeasonScheduleGet(); +let series_id: number; // (default to undefined) + +const { status, data } = await apiInstance.getSeriesPastSeasons( + series_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **series_id** | [**number**] | | defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -279,13 +290,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesSeasonsGet** -> IracingServiceMethodDocs dataDocSeriesSeasonsGet() +# **getSeriesPastSeasonsDocs** +> IracingServiceMethodDocs getSeriesPastSeasonsDocs() ### Example @@ -299,7 +312,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesSeasonsGet(); +const { status, data } = await apiInstance.getSeriesPastSeasonsDocs(); ``` ### Parameters @@ -328,8 +341,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocSeriesStatsSeriesGet** -> IracingServiceMethodDocs dataDocSeriesStatsSeriesGet() +# **getSeriesSeasonList** +> IracingAPIResponse getSeriesSeasonList() ### Example @@ -343,16 +356,29 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.dataDocSeriesStatsSeriesGet(); +let include_series: boolean; // (optional) (default to undefined) +let season_year: number; // (optional) (default to undefined) +let season_quarter: number; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getSeriesSeasonList( + include_series, + season_year, + season_quarter +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **include_series** | [**boolean**] | | (optional) defaults to undefined| +| **season_year** | [**number**] | | (optional) defaults to undefined| +| **season_quarter** | [**number**] | | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -367,13 +393,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeries** -> IracingAPIResponse getSeries() +# **getSeriesSeasonListDocs** +> IracingServiceMethodDocs getSeriesSeasonListDocs() ### Example @@ -387,7 +415,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.getSeries(); +const { status, data } = await apiInstance.getSeriesSeasonListDocs(); ``` ### Parameters @@ -396,7 +424,7 @@ This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -411,15 +439,13 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesAssets** -> IracingAPIResponse getSeriesAssets() +# **getSeriesSeasonSchedule** +> IracingAPIResponse getSeriesSeasonSchedule() ### Example @@ -433,11 +459,18 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.getSeriesAssets(); +let season_id: number; // (default to undefined) + +const { status, data } = await apiInstance.getSeriesSeasonSchedule( + season_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| ### Return type @@ -464,8 +497,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesPastSeasons** -> IracingAPIResponse getSeriesPastSeasons() +# **getSeriesSeasonScheduleDocs** +> IracingServiceMethodDocs getSeriesSeasonScheduleDocs() ### Example @@ -479,23 +512,16 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -let series_id: number; // (default to undefined) - -const { status, data } = await apiInstance.getSeriesPastSeasons( - series_id -); +const { status, data } = await apiInstance.getSeriesSeasonScheduleDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **series_id** | [**number**] | | defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -510,15 +536,13 @@ const { status, data } = await apiInstance.getSeriesPastSeasons( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesSeasonList** -> IracingAPIResponse getSeriesSeasonList() +# **getSeriesSeasons** +> IracingAPIResponse getSeriesSeasons() ### Example @@ -533,10 +557,10 @@ const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); let include_series: boolean; // (optional) (default to undefined) -let season_year: number; // (optional) (default to undefined) -let season_quarter: number; // (optional) (default to undefined) +let season_year: number; //To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) (default to undefined) +let season_quarter: number; //To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) (default to undefined) -const { status, data } = await apiInstance.getSeriesSeasonList( +const { status, data } = await apiInstance.getSeriesSeasons( include_series, season_year, season_quarter @@ -548,8 +572,8 @@ const { status, data } = await apiInstance.getSeriesSeasonList( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| | **include_series** | [**boolean**] | | (optional) defaults to undefined| -| **season_year** | [**number**] | | (optional) defaults to undefined| -| **season_quarter** | [**number**] | | (optional) defaults to undefined| +| **season_year** | [**number**] | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | (optional) defaults to undefined| +| **season_quarter** | [**number**] | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | (optional) defaults to undefined| ### Return type @@ -576,8 +600,8 @@ const { status, data } = await apiInstance.getSeriesSeasonList( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesSeasonSchedule** -> IracingAPIResponse getSeriesSeasonSchedule() +# **getSeriesSeasonsDocs** +> IracingServiceMethodDocs getSeriesSeasonsDocs() ### Example @@ -591,23 +615,16 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -let season_id: number; // (default to undefined) - -const { status, data } = await apiInstance.getSeriesSeasonSchedule( - season_id -); +const { status, data } = await apiInstance.getSeriesSeasonsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -622,15 +639,13 @@ const { status, data } = await apiInstance.getSeriesSeasonSchedule( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesSeasons** -> IracingAPIResponse getSeriesSeasons() +# **getSeriesStatsSeries** +> IracingAPIResponse getSeriesStatsSeries() ### Example @@ -644,24 +659,11 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -let include_series: boolean; // (optional) (default to undefined) -let season_year: number; //To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) (default to undefined) -let season_quarter: number; //To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) (default to undefined) - -const { status, data } = await apiInstance.getSeriesSeasons( - include_series, - season_year, - season_quarter -); +const { status, data } = await apiInstance.getSeriesStatsSeries(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **include_series** | [**boolean**] | | (optional) defaults to undefined| -| **season_year** | [**number**] | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | (optional) defaults to undefined| -| **season_quarter** | [**number**] | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type @@ -688,8 +690,8 @@ const { status, data } = await apiInstance.getSeriesSeasons( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesStatsSeries** -> IracingAPIResponse getSeriesStatsSeries() +# **getSeriesStatsSeriesDocs** +> IracingServiceMethodDocs getSeriesStatsSeriesDocs() ### Example @@ -703,7 +705,7 @@ import { const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); -const { status, data } = await apiInstance.getSeriesStatsSeries(); +const { status, data } = await apiInstance.getSeriesStatsSeriesDocs(); ``` ### Parameters @@ -712,7 +714,7 @@ This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -727,10 +729,8 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/StatsApi.md b/packages/api-client/src/client/docs/StatsApi.md index e5aadf4..87406c7 100644 --- a/packages/api-client/src/client/docs/StatsApi.md +++ b/packages/api-client/src/client/docs/StatsApi.md @@ -4,38 +4,38 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**dataDocStatsGet**](#datadocstatsget) | **GET** /data/doc/stats | | -|[**dataDocStatsMemberBestsGet**](#datadocstatsmemberbestsget) | **GET** /data/doc/stats/member_bests | | -|[**dataDocStatsMemberCareerGet**](#datadocstatsmembercareerget) | **GET** /data/doc/stats/member_career | | -|[**dataDocStatsMemberDivisionGet**](#datadocstatsmemberdivisionget) | **GET** /data/doc/stats/member_division | | -|[**dataDocStatsMemberRecapGet**](#datadocstatsmemberrecapget) | **GET** /data/doc/stats/member_recap | | -|[**dataDocStatsMemberRecentRacesGet**](#datadocstatsmemberrecentracesget) | **GET** /data/doc/stats/member_recent_races | | -|[**dataDocStatsMemberSummaryGet**](#datadocstatsmembersummaryget) | **GET** /data/doc/stats/member_summary | | -|[**dataDocStatsMemberYearlyGet**](#datadocstatsmemberyearlyget) | **GET** /data/doc/stats/member_yearly | | -|[**dataDocStatsSeasonDriverStandingsGet**](#datadocstatsseasondriverstandingsget) | **GET** /data/doc/stats/season_driver_standings | | -|[**dataDocStatsSeasonQualifyResultsGet**](#datadocstatsseasonqualifyresultsget) | **GET** /data/doc/stats/season_qualify_results | | -|[**dataDocStatsSeasonSupersessionStandingsGet**](#datadocstatsseasonsupersessionstandingsget) | **GET** /data/doc/stats/season_supersession_standings | | -|[**dataDocStatsSeasonTeamStandingsGet**](#datadocstatsseasonteamstandingsget) | **GET** /data/doc/stats/season_team_standings | | -|[**dataDocStatsSeasonTtResultsGet**](#datadocstatsseasonttresultsget) | **GET** /data/doc/stats/season_tt_results | | -|[**dataDocStatsSeasonTtStandingsGet**](#datadocstatsseasonttstandingsget) | **GET** /data/doc/stats/season_tt_standings | | -|[**dataDocStatsWorldRecordsGet**](#datadocstatsworldrecordsget) | **GET** /data/doc/stats/world_records | | +|[**getStatsDocs**](#getstatsdocs) | **GET** /data/doc/stats | | |[**getStatsMemberBests**](#getstatsmemberbests) | **GET** /data/stats/member_bests | | +|[**getStatsMemberBestsDocs**](#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | | |[**getStatsMemberCareer**](#getstatsmembercareer) | **GET** /data/stats/member_career | | +|[**getStatsMemberCareerDocs**](#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | | |[**getStatsMemberDivision**](#getstatsmemberdivision) | **GET** /data/stats/member_division | | +|[**getStatsMemberDivisionDocs**](#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | | |[**getStatsMemberRecap**](#getstatsmemberrecap) | **GET** /data/stats/member_recap | | +|[**getStatsMemberRecapDocs**](#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | | |[**getStatsMemberRecentRaces**](#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | | +|[**getStatsMemberRecentRacesDocs**](#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | | |[**getStatsMemberSummary**](#getstatsmembersummary) | **GET** /data/stats/member_summary | | +|[**getStatsMemberSummaryDocs**](#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | | |[**getStatsMemberYearly**](#getstatsmemberyearly) | **GET** /data/stats/member_yearly | | +|[**getStatsMemberYearlyDocs**](#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | | |[**getStatsSeasonDriverStandings**](#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | | +|[**getStatsSeasonDriverStandingsDocs**](#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | | |[**getStatsSeasonQualifyResults**](#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | | +|[**getStatsSeasonQualifyResultsDocs**](#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | | |[**getStatsSeasonSupersessionStandings**](#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | | +|[**getStatsSeasonSupersessionStandingsDocs**](#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | | +|[**getStatsSeasonTTResultsDocs**](#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | | +|[**getStatsSeasonTTStandingsDocs**](#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | | |[**getStatsSeasonTeamStandings**](#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | | +|[**getStatsSeasonTeamStandingsDocs**](#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | | |[**getStatsSeasonTimeTrialResults**](#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | | |[**getStatsSeasonTimeTrialStandings**](#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | | |[**getStatsWorldRecords**](#getstatsworldrecords) | **GET** /data/stats/world_records | | +|[**getStatsWorldRecordsDocs**](#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | | -# **dataDocStatsGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocStatsGet() +# **getStatsDocs** +> { [key: string]: IracingServiceMethodDocs; } getStatsDocs() ### Example @@ -49,7 +49,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsGet(); +const { status, data } = await apiInstance.getStatsDocs(); ``` ### Parameters @@ -78,8 +78,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberBestsGet** -> IracingServiceMethodDocs dataDocStatsMemberBestsGet() +# **getStatsMemberBests** +> IracingAPIResponse getStatsMemberBests() ### Example @@ -93,16 +93,26 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberBestsGet(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) +let car_id: number; //First call should exclude car_id; use cars_driven list in return for subsequent calls. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberBests( + cust_id, + car_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +| **car_id** | [**number**] | First call should exclude car_id; use cars_driven list in return for subsequent calls. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -117,13 +127,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberCareerGet** -> IracingServiceMethodDocs dataDocStatsMemberCareerGet() +# **getStatsMemberBestsDocs** +> IracingServiceMethodDocs getStatsMemberBestsDocs() ### Example @@ -137,7 +149,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberCareerGet(); +const { status, data } = await apiInstance.getStatsMemberBestsDocs(); ``` ### Parameters @@ -166,8 +178,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberDivisionGet** -> IracingServiceMethodDocs dataDocStatsMemberDivisionGet() +# **getStatsMemberCareer** +> IracingAPIResponse getStatsMemberCareer() ### Example @@ -181,16 +193,23 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberDivisionGet(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberCareer( + cust_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -205,13 +224,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberRecapGet** -> IracingServiceMethodDocs dataDocStatsMemberRecapGet() +# **getStatsMemberCareerDocs** +> IracingServiceMethodDocs getStatsMemberCareerDocs() ### Example @@ -225,7 +246,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberRecapGet(); +const { status, data } = await apiInstance.getStatsMemberCareerDocs(); ``` ### Parameters @@ -254,8 +275,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberRecentRacesGet** -> IracingServiceMethodDocs dataDocStatsMemberRecentRacesGet() +# **getStatsMemberDivision** +> IracingAPIResponse getStatsMemberDivision() ### Example @@ -269,16 +290,26 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberRecentRacesGet(); +let season_id: number; // (default to undefined) +let event_type: 4 | 5; //The event type code for the division type: 4 - Time Trial; 5 - Race (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberDivision( + season_id, + event_type +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **event_type** | [**4 | 5**]**Array<4 | 5>** | The event type code for the division type: 4 - Time Trial; 5 - Race | defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -293,13 +324,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberSummaryGet** -> IracingServiceMethodDocs dataDocStatsMemberSummaryGet() +# **getStatsMemberDivisionDocs** +> IracingServiceMethodDocs getStatsMemberDivisionDocs() ### Example @@ -313,7 +346,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberSummaryGet(); +const { status, data } = await apiInstance.getStatsMemberDivisionDocs(); ``` ### Parameters @@ -342,8 +375,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsMemberYearlyGet** -> IracingServiceMethodDocs dataDocStatsMemberYearlyGet() +# **getStatsMemberRecap** +> IracingAPIResponse getStatsMemberRecap() ### Example @@ -357,16 +390,29 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsMemberYearlyGet(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) +let year: 1 | 2 | 3 | 4; //Season year; if not supplied the current calendar year (UTC) is used. (optional) (default to undefined) +let season: number; //Season (quarter) within the year; if not supplied the recap will be for the entire year. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberRecap( + cust_id, + year, + season +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +| **year** | [**1 | 2 | 3 | 4**]**Array<1 | 2 | 3 | 4>** | Season year; if not supplied the current calendar year (UTC) is used. | (optional) defaults to undefined| +| **season** | [**number**] | Season (quarter) within the year; if not supplied the recap will be for the entire year. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -381,13 +427,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonDriverStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonDriverStandingsGet() +# **getStatsMemberRecapDocs** +> IracingServiceMethodDocs getStatsMemberRecapDocs() ### Example @@ -401,7 +449,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonDriverStandingsGet(); +const { status, data } = await apiInstance.getStatsMemberRecapDocs(); ``` ### Parameters @@ -430,8 +478,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonQualifyResultsGet** -> IracingServiceMethodDocs dataDocStatsSeasonQualifyResultsGet() +# **getStatsMemberRecentRaces** +> IracingAPIResponse getStatsMemberRecentRaces() ### Example @@ -445,16 +493,23 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonQualifyResultsGet(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberRecentRaces( + cust_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -469,13 +524,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonSupersessionStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonSupersessionStandingsGet() +# **getStatsMemberRecentRacesDocs** +> IracingServiceMethodDocs getStatsMemberRecentRacesDocs() ### Example @@ -489,7 +546,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonSupersessionStandingsGet(); +const { status, data } = await apiInstance.getStatsMemberRecentRacesDocs(); ``` ### Parameters @@ -518,8 +575,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonTeamStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonTeamStandingsGet() +# **getStatsMemberSummary** +> IracingAPIResponse getStatsMemberSummary() ### Example @@ -533,16 +590,23 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonTeamStandingsGet(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberSummary( + cust_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -557,13 +621,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonTtResultsGet** -> IracingServiceMethodDocs dataDocStatsSeasonTtResultsGet() +# **getStatsMemberSummaryDocs** +> IracingServiceMethodDocs getStatsMemberSummaryDocs() ### Example @@ -577,7 +643,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonTtResultsGet(); +const { status, data } = await apiInstance.getStatsMemberSummaryDocs(); ``` ### Parameters @@ -606,8 +672,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsSeasonTtStandingsGet** -> IracingServiceMethodDocs dataDocStatsSeasonTtStandingsGet() +# **getStatsMemberYearly** +> IracingAPIResponse getStatsMemberYearly() ### Example @@ -621,16 +687,23 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsSeasonTtStandingsGet(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberYearly( + cust_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -645,13 +718,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocStatsWorldRecordsGet** -> IracingServiceMethodDocs dataDocStatsWorldRecordsGet() +# **getStatsMemberYearlyDocs** +> IracingServiceMethodDocs getStatsMemberYearlyDocs() ### Example @@ -665,7 +740,7 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.dataDocStatsWorldRecordsGet(); +const { status, data } = await apiInstance.getStatsMemberYearlyDocs(); ``` ### Parameters @@ -694,8 +769,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsMemberBests** -> IracingAPIResponse getStatsMemberBests() +# **getStatsSeasonDriverStandings** +> IracingAPIResponse getStatsSeasonDriverStandings() ### Example @@ -709,12 +784,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) -let car_id: number; //First call should exclude car_id; use cars_driven list in return for subsequent calls. (optional) (default to undefined) +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsMemberBests( - cust_id, - car_id +const { status, data } = await apiInstance.getStatsSeasonDriverStandings( + season_id, + car_class_id, + division, + race_week_num ); ``` @@ -722,8 +801,10 @@ const { status, data } = await apiInstance.getStatsMemberBests( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| -| **car_id** | [**number**] | First call should exclude car_id; use cars_driven list in return for subsequent calls. | (optional) defaults to undefined| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| ### Return type @@ -750,8 +831,8 @@ const { status, data } = await apiInstance.getStatsMemberBests( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsMemberCareer** -> IracingAPIResponse getStatsMemberCareer() +# **getStatsSeasonDriverStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonDriverStandingsDocs() ### Example @@ -765,23 +846,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberCareer( - cust_id -); +const { status, data } = await apiInstance.getStatsSeasonDriverStandingsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -796,15 +870,13 @@ const { status, data } = await apiInstance.getStatsMemberCareer( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsMemberDivision** -> IracingAPIResponse getStatsMemberDivision() +# **getStatsSeasonQualifyResults** +> IracingAPIResponse getStatsSeasonQualifyResults() ### Example @@ -819,11 +891,15 @@ const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); let season_id: number; // (default to undefined) -let event_type: 4 | 5; //The event type code for the division type: 4 - Time Trial; 5 - Race (default to undefined) +let car_class_id: number; // (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsMemberDivision( +const { status, data } = await apiInstance.getStatsSeasonQualifyResults( season_id, - event_type + car_class_id, + race_week_num, + division ); ``` @@ -832,7 +908,9 @@ const { status, data } = await apiInstance.getStatsMemberDivision( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| | **season_id** | [**number**] | | defaults to undefined| -| **event_type** | [**4 | 5**]**Array<4 | 5>** | The event type code for the division type: 4 - Time Trial; 5 - Race | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| ### Return type @@ -859,8 +937,8 @@ const { status, data } = await apiInstance.getStatsMemberDivision( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsMemberRecap** -> IracingAPIResponse getStatsMemberRecap() +# **getStatsSeasonQualifyResultsDocs** +> IracingServiceMethodDocs getStatsSeasonQualifyResultsDocs() ### Example @@ -874,29 +952,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) -let year: 1 | 2 | 3 | 4; //Season year; if not supplied the current calendar year (UTC) is used. (optional) (default to undefined) -let season: number; //Season (quarter) within the year; if not supplied the recap will be for the entire year. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberRecap( - cust_id, - year, - season -); +const { status, data } = await apiInstance.getStatsSeasonQualifyResultsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| -| **year** | [**1 | 2 | 3 | 4**]**Array<1 | 2 | 3 | 4>** | Season year; if not supplied the current calendar year (UTC) is used. | (optional) defaults to undefined| -| **season** | [**number**] | Season (quarter) within the year; if not supplied the recap will be for the entire year. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -911,15 +976,13 @@ const { status, data } = await apiInstance.getStatsMemberRecap( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsMemberRecentRaces** -> IracingAPIResponse getStatsMemberRecentRaces() +# **getStatsSeasonSupersessionStandings** +> IracingAPIResponse getStatsSeasonSupersessionStandings() ### Example @@ -933,10 +996,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsMemberRecentRaces( - cust_id +const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( + season_id, + car_class_id, + division, + race_week_num ); ``` @@ -944,7 +1013,10 @@ const { status, data } = await apiInstance.getStatsMemberRecentRaces( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| ### Return type @@ -971,8 +1043,8 @@ const { status, data } = await apiInstance.getStatsMemberRecentRaces( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsMemberSummary** -> IracingAPIResponse getStatsMemberSummary() +# **getStatsSeasonSupersessionStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonSupersessionStandingsDocs() ### Example @@ -986,23 +1058,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberSummary( - cust_id -); +const { status, data } = await apiInstance.getStatsSeasonSupersessionStandingsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -1017,15 +1082,13 @@ const { status, data } = await apiInstance.getStatsMemberSummary( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsMemberYearly** -> IracingAPIResponse getStatsMemberYearly() +# **getStatsSeasonTTResultsDocs** +> IracingServiceMethodDocs getStatsSeasonTTResultsDocs() ### Example @@ -1039,23 +1102,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberYearly( - cust_id -); +const { status, data } = await apiInstance.getStatsSeasonTTResultsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -1070,15 +1126,13 @@ const { status, data } = await apiInstance.getStatsMemberYearly( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonDriverStandings** -> IracingAPIResponse getStatsSeasonDriverStandings() +# **getStatsSeasonTTStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonTTStandingsDocs() ### Example @@ -1092,32 +1146,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let season_id: number; // (default to undefined) -let car_class_id: number; // (default to undefined) -let division: IracingDivision; // (optional) (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsSeasonDriverStandings( - season_id, - car_class_id, - division, - race_week_num -); +const { status, data } = await apiInstance.getStatsSeasonTTStandingsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| -| **car_class_id** | [**number**] | | defaults to undefined| -| **division** | **IracingDivision** | | (optional) defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -1132,15 +1170,13 @@ const { status, data } = await apiInstance.getStatsSeasonDriverStandings( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonQualifyResults** -> IracingAPIResponse getStatsSeasonQualifyResults() +# **getStatsSeasonTeamStandings** +> IracingAPIResponse getStatsSeasonTeamStandings() ### Example @@ -1156,14 +1192,12 @@ const apiInstance = new StatsApi(configuration); let season_id: number; // (default to undefined) let car_class_id: number; // (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (default to undefined) -let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonQualifyResults( +const { status, data } = await apiInstance.getStatsSeasonTeamStandings( season_id, car_class_id, - race_week_num, - division + race_week_num ); ``` @@ -1173,8 +1207,7 @@ const { status, data } = await apiInstance.getStatsSeasonQualifyResults( |------------- | ------------- | ------------- | -------------| | **season_id** | [**number**] | | defaults to undefined| | **car_class_id** | [**number**] | | defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| -| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| ### Return type @@ -1201,8 +1234,8 @@ const { status, data } = await apiInstance.getStatsSeasonQualifyResults( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonSupersessionStandings** -> IracingAPIResponse getStatsSeasonSupersessionStandings() +# **getStatsSeasonTeamStandingsDocs** +> IracingServiceMethodDocs getStatsSeasonTeamStandingsDocs() ### Example @@ -1216,32 +1249,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let season_id: number; // (default to undefined) -let car_class_id: number; // (default to undefined) -let division: IracingDivision; // (optional) (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( - season_id, - car_class_id, - division, - race_week_num -); +const { status, data } = await apiInstance.getStatsSeasonTeamStandingsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| -| **car_class_id** | [**number**] | | defaults to undefined| -| **division** | **IracingDivision** | | (optional) defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -1256,15 +1273,13 @@ const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonTeamStandings** -> IracingAPIResponse getStatsSeasonTeamStandings() +# **getStatsSeasonTimeTrialResults** +> IracingAPIResponse getStatsSeasonTimeTrialResults() ### Example @@ -1280,12 +1295,14 @@ const apiInstance = new StatsApi(configuration); let season_id: number; // (default to undefined) let car_class_id: number; // (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonTeamStandings( +const { status, data } = await apiInstance.getStatsSeasonTimeTrialResults( season_id, car_class_id, - race_week_num + race_week_num, + division ); ``` @@ -1295,7 +1312,8 @@ const { status, data } = await apiInstance.getStatsSeasonTeamStandings( |------------- | ------------- | ------------- | -------------| | **season_id** | [**number**] | | defaults to undefined| | **car_class_id** | [**number**] | | defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| ### Return type @@ -1322,8 +1340,8 @@ const { status, data } = await apiInstance.getStatsSeasonTeamStandings( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonTimeTrialResults** -> IracingAPIResponse getStatsSeasonTimeTrialResults() +# **getStatsSeasonTimeTrialStandings** +> IracingAPIResponse getStatsSeasonTimeTrialStandings() ### Example @@ -1339,14 +1357,14 @@ const apiInstance = new StatsApi(configuration); let season_id: number; // (default to undefined) let car_class_id: number; // (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (default to undefined) let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonTimeTrialResults( +const { status, data } = await apiInstance.getStatsSeasonTimeTrialStandings( season_id, car_class_id, - race_week_num, - division + division, + race_week_num ); ``` @@ -1356,8 +1374,8 @@ const { status, data } = await apiInstance.getStatsSeasonTimeTrialResults( |------------- | ------------- | ------------- | -------------| | **season_id** | [**number**] | | defaults to undefined| | **car_class_id** | [**number**] | | defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| | **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| ### Return type @@ -1384,8 +1402,8 @@ const { status, data } = await apiInstance.getStatsSeasonTimeTrialResults( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonTimeTrialStandings** -> IracingAPIResponse getStatsSeasonTimeTrialStandings() +# **getStatsWorldRecords** +> IracingAPIResponse getStatsWorldRecords() ### Example @@ -1399,16 +1417,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let season_id: number; // (default to undefined) -let car_class_id: number; // (default to undefined) -let division: IracingDivision; // (optional) (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) +let car_id: number; // (default to undefined) +let track_id: number; // (default to undefined) +let season_year: number; //Limit best times to a given year. (optional) (default to undefined) +let season_quarter: number; //Limit best times to a given quarter; only applicable when year is used. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonTimeTrialStandings( - season_id, - car_class_id, - division, - race_week_num +const { status, data } = await apiInstance.getStatsWorldRecords( + car_id, + track_id, + season_year, + season_quarter ); ``` @@ -1416,10 +1434,10 @@ const { status, data } = await apiInstance.getStatsSeasonTimeTrialStandings( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| -| **car_class_id** | [**number**] | | defaults to undefined| -| **division** | **IracingDivision** | | (optional) defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| +| **car_id** | [**number**] | | defaults to undefined| +| **track_id** | [**number**] | | defaults to undefined| +| **season_year** | [**number**] | Limit best times to a given year. | (optional) defaults to undefined| +| **season_quarter** | [**number**] | Limit best times to a given quarter; only applicable when year is used. | (optional) defaults to undefined| ### Return type @@ -1446,8 +1464,8 @@ const { status, data } = await apiInstance.getStatsSeasonTimeTrialStandings( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsWorldRecords** -> IracingAPIResponse getStatsWorldRecords() +# **getStatsWorldRecordsDocs** +> IracingServiceMethodDocs getStatsWorldRecordsDocs() ### Example @@ -1461,32 +1479,16 @@ import { const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let car_id: number; // (default to undefined) -let track_id: number; // (default to undefined) -let season_year: number; //Limit best times to a given year. (optional) (default to undefined) -let season_quarter: number; //Limit best times to a given quarter; only applicable when year is used. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsWorldRecords( - car_id, - track_id, - season_year, - season_quarter -); +const { status, data } = await apiInstance.getStatsWorldRecordsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **car_id** | [**number**] | | defaults to undefined| -| **track_id** | [**number**] | | defaults to undefined| -| **season_year** | [**number**] | Limit best times to a given year. | (optional) defaults to undefined| -| **season_quarter** | [**number**] | Limit best times to a given quarter; only applicable when year is used. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -1501,10 +1503,8 @@ const { status, data } = await apiInstance.getStatsWorldRecords( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/TimeAttackApi.md b/packages/api-client/src/client/docs/TimeAttackApi.md index 39ce529..a9af2c4 100644 --- a/packages/api-client/src/client/docs/TimeAttackApi.md +++ b/packages/api-client/src/client/docs/TimeAttackApi.md @@ -4,12 +4,12 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**dataDocTimeAttackGet**](#datadoctimeattackget) | **GET** /data/doc/time_attack | | -|[**dataDocTimeAttackMemberSeasonResultsGet**](#datadoctimeattackmemberseasonresultsget) | **GET** /data/doc/time_attack/member_season_results | | +|[**getTimeAttackDocs**](#gettimeattackdocs) | **GET** /data/doc/time_attack | | |[**getTimeAttackMemberSeasonResults**](#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | | +|[**getTimeAttackMemberSeasonResultsDocs**](#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | | -# **dataDocTimeAttackGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocTimeAttackGet() +# **getTimeAttackDocs** +> { [key: string]: IracingServiceMethodDocs; } getTimeAttackDocs() ### Example @@ -23,7 +23,7 @@ import { const configuration = new Configuration(); const apiInstance = new TimeAttackApi(configuration); -const { status, data } = await apiInstance.dataDocTimeAttackGet(); +const { status, data } = await apiInstance.getTimeAttackDocs(); ``` ### Parameters @@ -52,8 +52,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTimeAttackMemberSeasonResultsGet** -> IracingServiceMethodDocs dataDocTimeAttackMemberSeasonResultsGet() +# **getTimeAttackMemberSeasonResults** +> IracingAPIResponse getTimeAttackMemberSeasonResults() ### Example @@ -67,16 +67,23 @@ import { const configuration = new Configuration(); const apiInstance = new TimeAttackApi(configuration); -const { status, data } = await apiInstance.dataDocTimeAttackMemberSeasonResultsGet(); +let ta_comp_season_id: number; // (default to undefined) + +const { status, data } = await apiInstance.getTimeAttackMemberSeasonResults( + ta_comp_season_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **ta_comp_season_id** | [**number**] | | defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -91,13 +98,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getTimeAttackMemberSeasonResults** -> IracingAPIResponse getTimeAttackMemberSeasonResults() +# **getTimeAttackMemberSeasonResultsDocs** +> IracingServiceMethodDocs getTimeAttackMemberSeasonResultsDocs() ### Example @@ -111,23 +120,16 @@ import { const configuration = new Configuration(); const apiInstance = new TimeAttackApi(configuration); -let ta_comp_season_id: number; // (default to undefined) - -const { status, data } = await apiInstance.getTimeAttackMemberSeasonResults( - ta_comp_season_id -); +const { status, data } = await apiInstance.getTimeAttackMemberSeasonResultsDocs(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **ta_comp_season_id** | [**number**] | | defaults to undefined| +This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -142,10 +144,8 @@ const { status, data } = await apiInstance.getTimeAttackMemberSeasonResults( ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/TrackApi.md b/packages/api-client/src/client/docs/TrackApi.md index d5ee417..8172ef8 100644 --- a/packages/api-client/src/client/docs/TrackApi.md +++ b/packages/api-client/src/client/docs/TrackApi.md @@ -4,14 +4,14 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**dataDocTrackAssetsGet**](#datadoctrackassetsget) | **GET** /data/doc/track/assets | | -|[**dataDocTrackGet**](#datadoctrackget) | **GET** /data/doc/track | | -|[**dataDocTrackGetGet**](#datadoctrackgetget) | **GET** /data/doc/track/get | | |[**getTrack**](#gettrack) | **GET** /data/track/get | | |[**getTrackAssets**](#gettrackassets) | **GET** /data/track/assets | | +|[**getTrackAssetsDocs**](#gettrackassetsdocs) | **GET** /data/doc/track/assets | | +|[**getTrackDocs**](#gettrackdocs) | **GET** /data/doc/track | | +|[**getTrackGetDocs**](#gettrackgetdocs) | **GET** /data/doc/track/get | | -# **dataDocTrackAssetsGet** -> IracingServiceMethodDocs dataDocTrackAssetsGet() +# **getTrack** +> IracingAPIResponse getTrack() ### Example @@ -25,7 +25,7 @@ import { const configuration = new Configuration(); const apiInstance = new TrackApi(configuration); -const { status, data } = await apiInstance.dataDocTrackAssetsGet(); +const { status, data } = await apiInstance.getTrack(); ``` ### Parameters @@ -34,7 +34,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -49,13 +49,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTrackGet** -> { [key: string]: IracingServiceMethodDocs; } dataDocTrackGet() +# **getTrackAssets** +> IracingAPIResponse getTrackAssets() ### Example @@ -69,7 +71,7 @@ import { const configuration = new Configuration(); const apiInstance = new TrackApi(configuration); -const { status, data } = await apiInstance.dataDocTrackGet(); +const { status, data } = await apiInstance.getTrackAssets(); ``` ### Parameters @@ -78,7 +80,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingAPIResponse** ### Authorization @@ -93,13 +95,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **dataDocTrackGetGet** -> IracingServiceMethodDocs dataDocTrackGetGet() +# **getTrackAssetsDocs** +> IracingServiceMethodDocs getTrackAssetsDocs() ### Example @@ -113,7 +117,7 @@ import { const configuration = new Configuration(); const apiInstance = new TrackApi(configuration); -const { status, data } = await apiInstance.dataDocTrackGetGet(); +const { status, data } = await apiInstance.getTrackAssetsDocs(); ``` ### Parameters @@ -142,8 +146,8 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getTrack** -> IracingAPIResponse getTrack() +# **getTrackDocs** +> { [key: string]: IracingServiceMethodDocs; } getTrackDocs() ### Example @@ -157,7 +161,7 @@ import { const configuration = new Configuration(); const apiInstance = new TrackApi(configuration); -const { status, data } = await apiInstance.getTrack(); +const { status, data } = await apiInstance.getTrackDocs(); ``` ### Parameters @@ -166,7 +170,7 @@ This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**{ [key: string]: IracingServiceMethodDocs; }** ### Authorization @@ -181,15 +185,13 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getTrackAssets** -> IracingAPIResponse getTrackAssets() +# **getTrackGetDocs** +> IracingServiceMethodDocs getTrackGetDocs() ### Example @@ -203,7 +205,7 @@ import { const configuration = new Configuration(); const apiInstance = new TrackApi(configuration); -const { status, data } = await apiInstance.getTrackAssets(); +const { status, data } = await apiInstance.getTrackGetDocs(); ``` ### Parameters @@ -212,7 +214,7 @@ This endpoint does not have any parameters. ### Return type -**IracingAPIResponse** +**IracingServiceMethodDocs** ### Authorization @@ -227,10 +229,8 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**200** | Success | - | |**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/packages/api-router/src/routes/data/doc.ts b/packages/api-router/src/routes/data/doc.ts index 17a0a06..70610c8 100644 --- a/packages/api-router/src/routes/data/doc.ts +++ b/packages/api-router/src/routes/data/doc.ts @@ -10,3 +10,747 @@ export const getDoc = createEndpoint( return response.data; } ); + +// Service docs +export const getCarClassDocs = createEndpoint( + "/data/doc/carclass", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getCarClassDocs(); + return response.data; + } +); + +export const getCarDocs = createEndpoint( + "/data/doc/car", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getCarDocs(); + return response.data; + } +); + +export const getConstantsDocs = createEndpoint( + "/data/doc/constants", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getConstantsDocs(); + return response.data; + } +); + +export const getDriverStatsByCategoryDocs = createEndpoint( + "/data/doc/driver_stats_by_category", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getDriverStatsByCategoryDocs(); + return response.data; + } +); + +export const getHostedDocs = createEndpoint( + "/data/doc/hosted", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getHostedDocs(); + return response.data; + } +); + +export const getLeagueDocs = createEndpoint( + "/data/doc/league", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueDocs(); + return response.data; + } +); + +export const getLookupDocs = createEndpoint( + "/data/doc/lookup", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLookupDocs(); + return response.data; + } +); + +export const getMemberDocs = createEndpoint( + "/data/doc/member", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberDocs(); + return response.data; + } +); + +export const getResultsDocs = createEndpoint( + "/data/doc/results", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsDocs(); + return response.data; + } +); + +export const getSeasonDocs = createEndpoint( + "/data/doc/season", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeasonDocs(); + return response.data; + } +); + +export const getSeriesDocs = createEndpoint( + "/data/doc/series", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesDocs(); + return response.data; + } +); + +export const getStatsDocs = createEndpoint( + "/data/doc/stats", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsDocs(); + return response.data; + } +); + +export const getTeamDocs = createEndpoint( + "/data/doc/team", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTeamDocs(); + return response.data; + } +); + +export const getTimeAttackDocs = createEndpoint( + "/data/doc/time_attack", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTimeAttackDocs(); + return response.data; + } +); + +export const getTrackDocs = createEndpoint( + "/data/doc/track", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTrackDocs(); + return response.data; + } +); + +// Service method docs (one-level deeper) +export const getCarClassGetDocs = createEndpoint( + "/data/doc/carclass/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getCarClassGetDocs(); + return response.data; + } +); + +export const getCarAssetsDocs = createEndpoint( + "/data/doc/car/assets", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getCarAssetsDocs(); + return response.data; + } +); + +export const getCarGetDocs = createEndpoint( + "/data/doc/car/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getCarGetDocs(); + return response.data; + } +); + +export const getConstantsCategoriesDocs = createEndpoint( + "/data/doc/constants/categories", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getConstantsCategoriesDocs(); + return response.data; + } +); + +export const getConstantsDivisionsDocs = createEndpoint( + "/data/doc/constants/divisions", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getConstantsDivisionsDocs(); + return response.data; + } +); + +export const getConstantsEventTypesDocs = createEndpoint( + "/data/doc/constants/event_types", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getConstantsEventTypesDocs(); + return response.data; + } +); + +export const getDriverStatsByCategoryCategoryDocs = createEndpoint( + "/data/doc/driver_stats_by_category/{category}", + { method: "GET" }, + async ({ context: { iracing }, params }) => { + const response = await iracing.doc.getDriverStatsByCategoryCategoryDocs({ + category: params?.category, + }); + return response.data; + } +); + +export const getHostedCombinedSessionsDocs = createEndpoint( + "/data/doc/hosted/combined_sessions", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getHostedCombinedSessionsDocs(); + return response.data; + } +); + +export const getHostedSessionsDocs = createEndpoint( + "/data/doc/hosted/sessions", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getHostedSessionsDocs(); + return response.data; + } +); + +export const getLeagueCustomerLeagueSessionsDocs = createEndpoint( + "/data/doc/league/cust_league_sessions", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueCustomerLeagueSessionsDocs(); + return response.data; + } +); + +export const getLeagueDirectoryDocs = createEndpoint( + "/data/doc/league/directory", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueDirectoryDocs(); + return response.data; + } +); + +export const getLeagueGetDocs = createEndpoint( + "/data/doc/league/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueGetDocs(); + return response.data; + } +); + +export const getLeagueGetPointsSystemsDocs = createEndpoint( + "/data/doc/league/get_points_systems", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueGetPointsSystemsDocs(); + return response.data; + } +); + +export const getLeagueMembershipDocs = createEndpoint( + "/data/doc/league/membership", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueMembershipDocs(); + return response.data; + } +); + +export const getLeagueRosterDocs = createEndpoint( + "/data/doc/league/roster", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueRosterDocs(); + return response.data; + } +); + +export const getLeagueSeasonsDocs = createEndpoint( + "/data/doc/league/seasons", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueSeasonsDocs(); + return response.data; + } +); + +export const getLeagueSeasonStandingsDocs = createEndpoint( + "/data/doc/league/season_standings", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueSeasonStandingsDocs(); + return response.data; + } +); + +export const getLeagueSeasonSessionsDocs = createEndpoint( + "/data/doc/league/season_sessions", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLeagueSeasonSessionsDocs(); + return response.data; + } +); + +export const getLookupCountriesDocs = createEndpoint( + "/data/doc/lookup/countries", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLookupCountriesDocs(); + return response.data; + } +); + +export const getLookupDriversDocs = createEndpoint( + "/data/doc/lookup/drivers", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLookupDriversDocs(); + return response.data; + } +); + +export const getLookupFlairsDocs = createEndpoint( + "/data/doc/lookup/flairs", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLookupFlairsDocs(); + return response.data; + } +); + +export const getLookupGetDocs = createEndpoint( + "/data/doc/lookup/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLookupGetDocs(); + return response.data; + } +); + +export const getLookupLicensesDocs = createEndpoint( + "/data/doc/lookup/licenses", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getLookupLicensesDocs(); + return response.data; + } +); + +export const getMemberAwardsDocs = createEndpoint( + "/data/doc/member/awards", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberAwardsDocs(); + return response.data; + } +); + +export const getMemberAwardInstancesDocs = createEndpoint( + "/data/doc/member/award_instances", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberAwardInstancesDocs(); + return response.data; + } +); + +export const getMemberChartDataDocs = createEndpoint( + "/data/doc/member/chart_data", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberChartDataDocs(); + return response.data; + } +); + +export const getMemberGetDocs = createEndpoint( + "/data/doc/member/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberGetDocs(); + return response.data; + } +); + +export const getMemberInfoDocs = createEndpoint( + "/data/doc/member/info", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberInfoDocs(); + return response.data; + } +); + +export const getMemberParticipationCreditsDocs = createEndpoint( + "/data/doc/member/participation_credits", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberParticipationCreditsDocs(); + return response.data; + } +); + +export const getMemberProfileDocs = createEndpoint( + "/data/doc/member/profile", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getMemberProfileDocs(); + return response.data; + } +); + +export const getResultsGetDocs = createEndpoint( + "/data/doc/results/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsGetDocs(); + return response.data; + } +); + +export const getResultsEventLogDocs = createEndpoint( + "/data/doc/results/event_log", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsEventLogDocs(); + return response.data; + } +); + +export const getResultsLapChartDataDocs = createEndpoint( + "/data/doc/results/lap_chart_data", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsLapChartDataDocs(); + return response.data; + } +); + +export const getResultsLapDataDocs = createEndpoint( + "/data/doc/results/lap_data", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsLapDataDocs(); + return response.data; + } +); + +export const getResultsSearchHostedDocs = createEndpoint( + "/data/doc/results/search_hosted", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsSearchHostedDocs(); + return response.data; + } +); + +export const getResultsSearchSeriesDocs = createEndpoint( + "/data/doc/results/search_series", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsSearchSeriesDocs(); + return response.data; + } +); + +export const getResultsSeasonResultsDocs = createEndpoint( + "/data/doc/results/season_results", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getResultsSeasonResultsDocs(); + return response.data; + } +); + +export const getSeasonListDocs = createEndpoint( + "/data/doc/season/list", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeasonListDocs(); + return response.data; + } +); + +export const getSeasonRaceGuideDocs = createEndpoint( + "/data/doc/season/race_guide", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeasonRaceGuideDocs(); + return response.data; + } +); + +export const getSeasonSpectatorSubsessionIdsDocs = createEndpoint( + "/data/doc/season/spectator_subsessionids", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeasonSpectatorSubsessionIdsDocs(); + return response.data; + } +); + +export const getSeasonSpectatorSubsessionIdsDetailDocs = createEndpoint( + "/data/doc/season/spectator_subsessionids_detail", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = + await iracing.doc.getSeasonSpectatorSubsessionIdsDetailDocs(); + return response.data; + } +); + +export const getSeriesAssetsDocs = createEndpoint( + "/data/doc/series/assets", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesAssetsDocs(); + return response.data; + } +); + +export const getSeriesGetDocs = createEndpoint( + "/data/doc/series/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesGetDocs(); + return response.data; + } +); + +export const getSeriesPastSeasonsDocs = createEndpoint( + "/data/doc/series/past_seasons", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesPastSeasonsDocs(); + return response.data; + } +); + +export const getSeriesSeasonsDocs = createEndpoint( + "/data/doc/series/seasons", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesSeasonsDocs(); + return response.data; + } +); + +export const getSeriesSeasonListDocs = createEndpoint( + "/data/doc/series/season_list", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesSeasonListDocs(); + return response.data; + } +); + +export const getSeriesSeasonScheduleDocs = createEndpoint( + "/data/doc/series/season_schedule", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesSeasonScheduleDocs(); + return response.data; + } +); + +export const getSeriesStatsSeriesDocs = createEndpoint( + "/data/doc/series/stats_series", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getSeriesStatsSeriesDocs(); + return response.data; + } +); + +export const getStatsMemberBestsDocs = createEndpoint( + "/data/doc/stats/member_bests", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsMemberBestsDocs(); + return response.data; + } +); + +export const getStatsMemberCareerDocs = createEndpoint( + "/data/doc/stats/member_career", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsMemberCareerDocs(); + return response.data; + } +); + +export const getStatsMemberDivisionDocs = createEndpoint( + "/data/doc/stats/member_division", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsMemberDivisionDocs(); + return response.data; + } +); + +export const getStatsMemberRecapDocs = createEndpoint( + "/data/doc/stats/member_recap", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsMemberRecapDocs(); + return response.data; + } +); + +export const getStatsMemberRecentRacesDocs = createEndpoint( + "/data/doc/stats/member_recent_races", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsMemberRecentRacesDocs(); + return response.data; + } +); + +export const getStatsMemberSummaryDocs = createEndpoint( + "/data/doc/stats/member_summary", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsMemberSummaryDocs(); + return response.data; + } +); + +export const getStatsMemberYearlyDocs = createEndpoint( + "/data/doc/stats/member_yearly", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsMemberYearlyDocs(); + return response.data; + } +); + +export const getStatsSeasonDriverStandingsDocs = createEndpoint( + "/data/doc/stats/season_driver_standings", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsSeasonDriverStandingsDocs(); + return response.data; + } +); + +export const getStatsSeasonSupersessionStandingsDocs = createEndpoint( + "/data/doc/stats/season_supersession_standings", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = + await iracing.doc.getStatsSeasonSupersessionStandingsDocs(); + return response.data; + } +); + +export const getStatsSeasonTeamStandingsDocs = createEndpoint( + "/data/doc/stats/season_team_standings", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsSeasonTeamStandingsDocs(); + return response.data; + } +); + +export const getStatsSeasonTTStandingsDocs = createEndpoint( + "/data/doc/stats/season_tt_standings", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsSeasonTTStandingsDocs(); + return response.data; + } +); + +export const getStatsSeasonTTResultsDocs = createEndpoint( + "/data/doc/stats/season_tt_results", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsSeasonTTResultsDocs(); + return response.data; + } +); + +export const getStatsSeasonQualifyResultsDocs = createEndpoint( + "/data/doc/stats/season_qualify_results", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsSeasonQualifyResultsDocs(); + return response.data; + } +); + +export const getStatsWorldRecordsDocs = createEndpoint( + "/data/doc/stats/world_records", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getStatsWorldRecordsDocs(); + return response.data; + } +); + +export const getTeamGetDocs = createEndpoint( + "/data/doc/team/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTeamGetDocs(); + return response.data; + } +); + +export const getTeamMembershipDocs = createEndpoint( + "/data/doc/team/membership", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTeamMembershipDocs(); + return response.data; + } +); + +export const getTimeAttackMemberSeasonResultsDocs = createEndpoint( + "/data/doc/time_attack/member_season_results", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTimeAttackMemberSeasonResultsDocs(); + return response.data; + } +); + +export const getTrackAssetsDocs = createEndpoint( + "/data/doc/track/assets", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTrackAssetsDocs(); + return response.data; + } +); + +export const getTrackGetDocs = createEndpoint( + "/data/doc/track/get", + { method: "GET" }, + async ({ context: { iracing } }) => { + const response = await iracing.doc.getTrackGetDocs(); + return response.data; + } +); diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index 0409b30..c3c9517 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -741,6 +741,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/season/spectator_subsessionids": { get: { + operationId: "getSeasonSpectatorSubsessionIdsDocs", tags: ["doc", "season"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -750,6 +751,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/season/spectator_subsessionids_detail": { get: { + operationId: "getSeasonSpectatorSubsessionIdsDetailDocs", tags: ["doc", "season"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -759,6 +761,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series": { get: { + operationId: "getSeriesDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -768,6 +771,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series/assets": { get: { + operationId: "getSeriesAssetsDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -777,6 +781,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series/get": { get: { + operationId: "getSeriesGetDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -786,6 +791,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series/past_seasons": { get: { + operationId: "getSeriesPastSeasonsDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -795,6 +801,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series/seasons": { get: { + operationId: "getSeriesSeasonsDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -804,6 +811,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series/season_list": { get: { + operationId: "getSeriesSeasonListDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -813,6 +821,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series/season_schedule": { get: { + operationId: "getSeriesSeasonScheduleDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -822,6 +831,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/series/stats_series": { get: { + operationId: "getSeriesStatsSeriesDocs", tags: ["doc", "series"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -831,6 +841,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats": { get: { + operationId: "getStatsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -840,6 +851,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/member_bests": { get: { + operationId: "getStatsMemberBestsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -849,6 +861,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/member_career": { get: { + operationId: "getStatsMemberCareerDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -858,6 +871,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/member_division": { get: { + operationId: "getStatsMemberDivisionDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -867,6 +881,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/member_recap": { get: { + operationId: "getStatsMemberRecapDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -876,6 +891,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/member_recent_races": { get: { + operationId: "getStatsMemberRecentRacesDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -885,6 +901,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/member_summary": { get: { + operationId: "getStatsMemberSummaryDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -894,6 +911,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/member_yearly": { get: { + operationId: "getStatsMemberYearlyDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -903,6 +921,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/season_driver_standings": { get: { + operationId: "getStatsSeasonDriverStandingsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -912,6 +931,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/season_supersession_standings": { get: { + operationId: "getStatsSeasonSupersessionStandingsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -921,6 +941,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/season_team_standings": { get: { + operationId: "getStatsSeasonTeamStandingsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -930,6 +951,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/season_tt_standings": { get: { + operationId: "getStatsSeasonTTStandingsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -939,6 +961,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/season_tt_results": { get: { + operationId: "getStatsSeasonTTResultsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -948,6 +971,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/season_qualify_results": { get: { + operationId: "getStatsSeasonQualifyResultsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -957,6 +981,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/stats/world_records": { get: { + operationId: "getStatsWorldRecordsDocs", tags: ["doc", "stats"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -996,6 +1021,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/time_attack": { get: { + operationId: "getTimeAttackDocs", tags: ["doc", "time_attack"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -1005,6 +1031,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/time_attack/member_season_results": { get: { + operationId: "getTimeAttackMemberSeasonResultsDocs", tags: ["doc", "time_attack"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -1014,6 +1041,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/track": { get: { + operationId: "getTrackDocs", tags: ["doc", "track"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, @@ -1023,6 +1051,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/track/assets": { get: { + operationId: "getTrackAssetsDocs", tags: ["doc", "track"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, @@ -1032,6 +1061,7 @@ export async function generateOpenAPISpec({ }, "/data/doc/track/get": { get: { + operationId: "getTrackGetDocs", tags: ["doc", "track"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, From d44f66760cfe3464ee5c0cdd67e26c65be106895 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:57:54 -0500 Subject: [PATCH 15/28] fix openapi reference --- examples/oauth-example/src/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/oauth-example/src/index.ts b/examples/oauth-example/src/index.ts index 2b8b9ad..1df26a1 100644 --- a/examples/oauth-example/src/index.ts +++ b/examples/oauth-example/src/index.ts @@ -13,6 +13,9 @@ import { toNodeHandler } from "better-call/node"; const iracingRouter = createRouter({ basePath: "/iracing", + openapi: { + path: "/reference", + }, }); const app = express(); From 9a674eb0f685dccaa3912c826f2df1be703f0d1a Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 09:30:13 -0500 Subject: [PATCH 16/28] update to include a list of paths --- examples/oauth-example/src/index.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/examples/oauth-example/src/index.ts b/examples/oauth-example/src/index.ts index 1df26a1..748d059 100644 --- a/examples/oauth-example/src/index.ts +++ b/examples/oauth-example/src/index.ts @@ -1,3 +1,4 @@ +import path from "node:path"; import express from "express"; import cookieParser from "cookie-parser"; import { createRouter } from "@iracing-data/api-router"; @@ -18,6 +19,14 @@ const iracingRouter = createRouter({ }, }); +const availablePaths = Object.values(iracingRouter.endpoints).map( + ({ path: endpointPath }) => path.join("/iracing", endpointPath) +); + +const availablePathsList = `
    ${availablePaths + .map((p) => `
  • ${p}
  • `) + .join("")}
`; + const app = express(); app.use(express.json(), express.urlencoded({ extended: true }), cookieParser()); @@ -27,17 +36,25 @@ app.get("/", getIRacingSession, (req: IRacingSessionRequest, res) => { .send( page( req.accessToken - ? `

Authenticated with iRacing

Sign out` + ? `

Authenticated with iRacing

Sign out${availablePathsList}` : `

Login

Login with iRacing` ) ); }); +/** + * Kicks off the iRacing OAuth sign-in flow. + */ app.get("/iracing/login", async (req, res) => { const { url } = await oauthClient.authorize(); return res.redirect(url.toString()); }); +/** + * Callback for the iRacing OAuth sign-in flow. + * The path this handler is registered to should match + * the path provided to iRacing during client registration. + */ app.get("/oauth/iracing/callback", async (req, res) => { const params = new URLSearchParams(req.url.split("?")[1]); const session = await oauthClient.callback(params); From 8f80b0d898b3b8dcd0110a9690987c349de7c48e Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 13:52:15 -0500 Subject: [PATCH 17/28] Update proxy API example project name --- .../.env.template | 0 .../package.json | 5 +--- .../src/config.ts | 0 .../src/index.ts | 23 +++++++++++++++++++ .../src/middleware.ts | 0 .../src/oauth-client.ts | 0 .../src/page.ts | 0 .../src/storage/memory.ts | 0 .../tsconfig.build.json | 0 .../tsconfig.json | 2 +- 10 files changed, 25 insertions(+), 5 deletions(-) rename examples/{oauth-example => iracing-proxy-api-example}/.env.template (100%) rename examples/{oauth-example => iracing-proxy-api-example}/package.json (79%) rename examples/{oauth-example => iracing-proxy-api-example}/src/config.ts (100%) rename examples/{oauth-example => iracing-proxy-api-example}/src/index.ts (74%) rename examples/{oauth-example => iracing-proxy-api-example}/src/middleware.ts (100%) rename examples/{oauth-example => iracing-proxy-api-example}/src/oauth-client.ts (100%) rename examples/{oauth-example => iracing-proxy-api-example}/src/page.ts (100%) rename examples/{oauth-example => iracing-proxy-api-example}/src/storage/memory.ts (100%) rename examples/{oauth-example => iracing-proxy-api-example}/tsconfig.build.json (100%) rename examples/{oauth-example => iracing-proxy-api-example}/tsconfig.json (83%) diff --git a/examples/oauth-example/.env.template b/examples/iracing-proxy-api-example/.env.template similarity index 100% rename from examples/oauth-example/.env.template rename to examples/iracing-proxy-api-example/.env.template diff --git a/examples/oauth-example/package.json b/examples/iracing-proxy-api-example/package.json similarity index 79% rename from examples/oauth-example/package.json rename to examples/iracing-proxy-api-example/package.json index 8de60c8..cefe42c 100644 --- a/examples/oauth-example/package.json +++ b/examples/iracing-proxy-api-example/package.json @@ -1,5 +1,5 @@ { - "name": "iracing-oauth-example", + "name": "iracing-proxy-api-example", "version": "0.0.1", "type": "module", "main": "dist/index.js", @@ -8,10 +8,7 @@ "dev": "tsx watch --tsconfig tsconfig.build.json --env-file=.env src/index.ts" }, "dependencies": { - "@iracing-data/api": "workspace:*", - "@iracing-data/api-client": "workspace:*", "@iracing-data/api-router": "workspace:*", - "@iracing-data/api-schema": "workspace:*", "@iracing-data/oauth-client": "workspace:*", "axios": "^1.7.9", "better-call": "^1.0.24", diff --git a/examples/oauth-example/src/config.ts b/examples/iracing-proxy-api-example/src/config.ts similarity index 100% rename from examples/oauth-example/src/config.ts rename to examples/iracing-proxy-api-example/src/config.ts diff --git a/examples/oauth-example/src/index.ts b/examples/iracing-proxy-api-example/src/index.ts similarity index 74% rename from examples/oauth-example/src/index.ts rename to examples/iracing-proxy-api-example/src/index.ts index 748d059..bfc06f8 100644 --- a/examples/oauth-example/src/index.ts +++ b/examples/iracing-proxy-api-example/src/index.ts @@ -11,12 +11,34 @@ import { setIRacingSessionHeader, } from "./middleware"; import { toNodeHandler } from "better-call/node"; +import { toResponse } from "better-call"; +import { IracingAPIResponse } from "../../../packages/api-client/dist"; const iracingRouter = createRouter({ basePath: "/iracing", openapi: { path: "/reference", }, + /** + * By default, the iRacing API responds with links that + * contain the data. Here, we parse the link, fetch the data, + * and return it directly. + */ + onResponse: async (response) => { + // TODO: Cache the data until the expiration date. + const json = await response.json(); + const { link, expires } = json as IracingAPIResponse; + + const expirationDate = new Date(expires); + if (expirationDate.getTime() < Date.now()) { + throw new Error("Data is expired!"); + } + + const data = await fetch(link); + const result = await data.json(); + + return toResponse(result); + }, }); const availablePaths = Object.values(iracingRouter.endpoints).map( @@ -58,6 +80,7 @@ app.get("/iracing/login", async (req, res) => { app.get("/oauth/iracing/callback", async (req, res) => { const params = new URLSearchParams(req.url.split("?")[1]); const session = await oauthClient.callback(params); + res.cookie("iracing-session", JSON.stringify(session), { httpOnly: true, }); diff --git a/examples/oauth-example/src/middleware.ts b/examples/iracing-proxy-api-example/src/middleware.ts similarity index 100% rename from examples/oauth-example/src/middleware.ts rename to examples/iracing-proxy-api-example/src/middleware.ts diff --git a/examples/oauth-example/src/oauth-client.ts b/examples/iracing-proxy-api-example/src/oauth-client.ts similarity index 100% rename from examples/oauth-example/src/oauth-client.ts rename to examples/iracing-proxy-api-example/src/oauth-client.ts diff --git a/examples/oauth-example/src/page.ts b/examples/iracing-proxy-api-example/src/page.ts similarity index 100% rename from examples/oauth-example/src/page.ts rename to examples/iracing-proxy-api-example/src/page.ts diff --git a/examples/oauth-example/src/storage/memory.ts b/examples/iracing-proxy-api-example/src/storage/memory.ts similarity index 100% rename from examples/oauth-example/src/storage/memory.ts rename to examples/iracing-proxy-api-example/src/storage/memory.ts diff --git a/examples/oauth-example/tsconfig.build.json b/examples/iracing-proxy-api-example/tsconfig.build.json similarity index 100% rename from examples/oauth-example/tsconfig.build.json rename to examples/iracing-proxy-api-example/tsconfig.build.json diff --git a/examples/oauth-example/tsconfig.json b/examples/iracing-proxy-api-example/tsconfig.json similarity index 83% rename from examples/oauth-example/tsconfig.json rename to examples/iracing-proxy-api-example/tsconfig.json index 9abc5e7..5455dae 100644 --- a/examples/oauth-example/tsconfig.json +++ b/examples/iracing-proxy-api-example/tsconfig.json @@ -3,7 +3,7 @@ "references": [{ "path": "./tsconfig.build.json" }], "compilerOptions": { "paths": { - "@/*": ["src/*"] + "@/*": ["./src/*"] } } } From ed2558f3eb775baad861149fb425ac2d66c7294e Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 13:52:53 -0500 Subject: [PATCH 18/28] Update API packages --- packages/api-client/openapi/openapi.json | 4927 ++++++++++++++++- .../src/client/.openapi-generator/FILES | 1 - packages/api-client/src/client/README.md | 3 +- packages/api-client/src/client/api.ts | 247 +- .../api-client/src/client/docs/MemberApi.md | 8 +- .../api-client/src/client/docs/ResultsApi.md | 12 +- .../api-client/src/client/docs/SeasonApi.md | 111 + .../src/routes/data/driver-stats.ts | 8 +- packages/api-router/src/routes/data/index.ts | 2 +- .../api-router/src/routes/data/results.ts | 73 + packages/api-router/src/routes/data/season.ts | 29 +- packages/api-schema/src/schema.ts | 231 +- .../api-schema-to-openapi/src/index.ts | 38 + 13 files changed, 5521 insertions(+), 169 deletions(-) create mode 100644 packages/api-router/src/routes/data/results.ts diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json index 3100a30..cfcf6ac 100644 --- a/packages/api-client/openapi/openapi.json +++ b/packages/api-client/openapi/openapi.json @@ -1 +1,4926 @@ -{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"externalDocs":{"url":"/data/doc","description":"Find more information on available services here. Requires authentication."},"security":[{"bearerAuth":[]}],"tags":[{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/data/doc":{"get":{"operationId":"getDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/Docs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"operationId":"getCarClassDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"operationId":"getCarClassGetDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"operationId":"getCarDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"operationId":"getCarAssetsDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"operationId":"getCarGetDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"operationId":"getConstantsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"operationId":"getConstantsCategoriesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"operationId":"getConstantsDivisionsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"operationId":"getConstantsEventTypesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"operationId":"getDriverStatsByCategoryDocs","tags":["doc","driver_stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategoryCategoryDocs","tags":["doc","driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"operationId":"getHostedDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"operationId":"getHostedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"operationId":"getLeagueDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"operationId":"getLeagueDirectoryDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"operationId":"getLeagueGetDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"operationId":"getLeagueGetPointsSystemsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"operationId":"getLeagueMembershipDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"operationId":"getLeagueRosterDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"operationId":"getLeagueSeasonsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandingsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"operationId":"getLookupDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"operationId":"getLookupCountriesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"operationId":"getLookupDriversDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"operationId":"getLookupFlairsDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"operationId":"getLookupGetDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"operationId":"getLookupLicensesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"operationId":"getMemberDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"operationId":"getMemberAwardsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"operationId":"getMemberAwardInstancesDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"operationId":"getMemberChartDataDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"operationId":"getMemberGetDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"operationId":"getMemberInfoDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"operationId":"getMemberParticipationCreditsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"operationId":"getMemberProfileDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"operationId":"getResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"operationId":"getResultsGetDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"operationId":"getResultsEventLogDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"operationId":"getResultsLapDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"operationId":"getResultsSearchHostedDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"operationId":"getResultsSearchSeriesDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"operationId":"getResultsSeasonResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"operationId":"getSeasonDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"operationId":"getSeasonListDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"operationId":"getSeasonRaceGuideDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetailDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"operationId":"getSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"operationId":"getSeriesAssetsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"operationId":"getSeriesGetDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"operationId":"getSeriesSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"operationId":"getSeriesSeasonListDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"operationId":"getSeriesSeasonScheduleDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"operationId":"getSeriesStatsSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"operationId":"getStatsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"operationId":"getStatsMemberBestsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"operationId":"getStatsMemberCareerDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"operationId":"getStatsMemberDivisionDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"operationId":"getStatsMemberRecapDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRacesDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"operationId":"getStatsMemberSummaryDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearlyDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"operationId":"getStatsSeasonTTStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"operationId":"getStatsSeasonTTResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"operationId":"getStatsWorldRecordsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"operationId":"getTeamDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"operationId":"getTeamGetDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"operationId":"getTeamMembershipDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"operationId":"getTimeAttackDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResultsDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"operationId":"getTrackDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"operationId":"getTrackAssetsDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"operationId":"getTrackGetDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"externalDocs":{"url":"/data/doc/carclass/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"operationId":"getCarAssets","description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"externalDocs":{"url":"/data/doc/car/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"operationId":"getCar","tags":["car"],"externalDocs":{"url":"/data/doc/car/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"operationId":"getConstantsCategories","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/categories"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"operationId":"getConstantsDivisions","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/divisions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"operationId":"getConstantsEventTypes","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/event_types"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategory","tags":["driver_stats"],"externalDocs":{"url":"/data/doc/driver_stats_by_category/{category}"},"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessions","description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/combined_sessions"},"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"operationId":"getHostedSessions","description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/sessions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/cust_league_sessions"},"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"operationId":"getLeagueDirectory","tags":["league"],"externalDocs":{"url":"/data/doc/league/directory"},"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"operationId":"getLeague","tags":["league"],"externalDocs":{"url":"/data/doc/league/get"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"operationId":"getLeaguePointsSystems","tags":["league"],"externalDocs":{"url":"/data/doc/league/get_points_systems"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"operationId":"getLeagueMembership","tags":["league"],"externalDocs":{"url":"/data/doc/league/membership"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"operationId":"getLeagueRoster","tags":["league"],"externalDocs":{"url":"/data/doc/league/roster"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"operationId":"getLeagueSeasons","tags":["league"],"externalDocs":{"url":"/data/doc/league/seasons"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandings","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_standings"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_sessions"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"operationId":"getLookupCountries","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/countries"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"operationId":"getLookupFlairs","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/flairs"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"operationId":"getLookupLicenses","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/licenses"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"operationId":"getLookupDrivers","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/drivers"},"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"operationId":"getLookup","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"operationId":"getMemberAwards","tags":["member"],"externalDocs":{"url":"/data/doc/member/awards"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"operationId":"getMemberAwardInstances","tags":["member"],"externalDocs":{"url":"/data/doc/member/award_instances"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"operationId":"getMemberChartData","tags":["member"],"externalDocs":{"url":"/data/doc/member/chart_data"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","$ref":"#/components/schemas/iracingChartType"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"operationId":"getMember","tags":["member"],"externalDocs":{"url":"/data/doc/member/get"},"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"?cust_ids=2,3,4","type":"array","items":{"type":"number"}},"required":true,"description":"?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"operationId":"getMemberInfo","tags":["member"],"externalDocs":{"url":"/data/doc/member/info"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"operationId":"getMemberParticipationCredits","tags":["member"],"externalDocs":{"url":"/data/doc/member/participation_credits"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getMemberProfile","summary":"Gets a requested user's profile.","tags":["member"],"externalDocs":{"url":"/data/doc/member/profile"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"operationId":"getResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/get"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"operationId":"getResultsEventLog","tags":["results"],"externalDocs":{"url":"/data/doc/results/event_log"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_chart_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"operationId":"getResultsLapData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"operationId":"getResultsSearchHosted","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_hosted"},"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"operationId":"getResultsSearchSeries","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_series"},"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"type":"number"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"array","items":{"type":"number"}},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"operationId":"getResultsSeasonResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/season_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"operationId":"getSeasonList","tags":["season"],"externalDocs":{"url":"/data/doc/season/list"},"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"operationId":"getSeasonRaceGuide","tags":["season"],"externalDocs":{"url":"/data/doc/season/race_guide"},"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"operationId":"getSeriesAssets","tags":["series"],"externalDocs":{"url":"/data/doc/series/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"operationId":"getSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/past_seasons"},"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"operationId":"getSeriesSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/seasons"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"operationId":"getSeriesSeasonList","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_list"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"operationId":"getSeriesSeasonSchedule","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_schedule"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"operationId":"getSeriesStatsSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/stats_series"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"operationId":"getStatsMemberBests","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_bests"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"operationId":"getStatsMemberCareer","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_career"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"operationId":"getStatsMemberDivision","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_division"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"operationId":"getStatsMemberRecap","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recap"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRaces","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recent_races"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"operationId":"getStatsMemberSummary","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_summary"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearly","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_yearly"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_driver_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_supersession_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_team_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"operationId":"getStatsSeasonTimeTrialStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"operationId":"getStatsSeasonTimeTrialResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_qualify_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"operationId":"getStatsWorldRecords","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/world_records"},"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"operationId":"getTeam","tags":["team"],"externalDocs":{"url":"/data/doc/team/get"},"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"operationId":"getTeamMembership","tags":["team"],"externalDocs":{"url":"/data/doc/team/membership"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResults","tags":["time_attack"],"externalDocs":{"url":"/data/doc/time_attack/member_season_results"},"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"operationId":"getTrackAssets","tags":["track"],"externalDocs":{"url":"/data/doc/track/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"operationId":"getTrack","tags":["track"],"externalDocs":{"url":"/data/doc/track/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingChartType":{"description":"iRacing Chart Type","anyOf":[{"description":"iRating","type":"number","const":1},{"description":"Time trial rating","type":"number","const":2},{"description":"License rating","type":"number","const":3}]},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false},"iracingServicesDocs":{"description":"An index of available services on the iRacing API.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceDocs"}},"iracingServiceDocs":{"description":"An index of service methods available for the requested service.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}},"iracingServiceMethodDocs":{"description":"An iRacing API Service Method object.","type":"object","properties":{"link":{"type":"string","format":"uri"},"parameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodParametersDocs"}},"expirationSeconds":{"type":"number"}},"required":["link","parameters"],"additionalProperties":false},"iracingServiceMethodParametersDocs":{"description":"An iRacing API Service Method Parameters object.","type":"object","properties":{"type":{"type":"string"},"note":{"type":"string"},"required":{"type":"boolean"}},"required":["type"],"additionalProperties":false},"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"Docs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServicesDocs"}}}},"ServiceDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceDocs"}}}},"ServiceMethodDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file +{ + "openapi": "3.1.1", + "info": { + "title": "iRacing `/data` API", + "version": "0.0.1" + }, + "servers": [ + { + "url": "https://members-ng.iracing.com/" + } + ], + "externalDocs": { + "url": "/data/doc", + "description": "Find more information on available services here. Requires authentication." + }, + "security": [ + { + "bearerAuth": [] + } + ], + "tags": [ + { + "name": "doc", + "description": "A documentation endpoint." + }, + { + "name": "car", + "description": "Car service endpoint." + }, + { + "name": "carclass", + "description": "Car class service endpoint." + }, + { + "name": "constants", + "description": "Constants service endpoint." + }, + { + "name": "driver_stats", + "description": "Driver stats service endpoint." + }, + { + "name": "hosted", + "description": "Hosted service endpoint." + }, + { + "name": "league", + "description": "League service endpoint" + }, + { + "name": "lookup", + "description": "Lookup endpoints for static reference data (countries, licenses, drivers, etc.)" + }, + { + "name": "member", + "description": "Member profile and related endpoints (profile, awards, participation credits)." + }, + { + "name": "results", + "description": "Race and session result endpoints (lap data, event logs, season results)." + }, + { + "name": "season", + "description": "Season-related endpoints (season lists, race guides, schedules)." + }, + { + "name": "series", + "description": "Series endpoints (series metadata, seasons, assets)." + }, + { + "name": "stats", + "description": "Statistical endpoints and summaries for members and seasons." + }, + { + "name": "team", + "description": "Team endpoints (team details, membership)." + }, + { + "name": "time_attack", + "description": "Time attack specific endpoints and member season results." + }, + { + "name": "track", + "description": "Track metadata and asset endpoints." + } + ], + "paths": { + "/data/doc": { + "get": { + "operationId": "getDocs", + "tags": [ + "doc" + ], + "responses": { + "200": { + "$ref": "#/components/responses/Docs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/carclass": { + "get": { + "operationId": "getCarClassDocs", + "tags": [ + "doc", + "carclass" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/carclass/get": { + "get": { + "operationId": "getCarClassGetDocs", + "tags": [ + "doc", + "carclass" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/car": { + "get": { + "operationId": "getCarDocs", + "tags": [ + "doc", + "car" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/car/assets": { + "get": { + "operationId": "getCarAssetsDocs", + "tags": [ + "doc", + "car" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/car/get": { + "get": { + "operationId": "getCarGetDocs", + "tags": [ + "doc", + "car" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants": { + "get": { + "operationId": "getConstantsDocs", + "tags": [ + "doc", + "constants" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants/categories": { + "get": { + "operationId": "getConstantsCategoriesDocs", + "tags": [ + "doc", + "constants" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants/divisions": { + "get": { + "operationId": "getConstantsDivisionsDocs", + "tags": [ + "doc", + "constants" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/constants/event_types": { + "get": { + "operationId": "getConstantsEventTypesDocs", + "tags": [ + "doc", + "constants" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category": { + "get": { + "operationId": "getDriverStatsByCategoryDocs", + "tags": [ + "doc", + "driver_stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/driver_stats_by_category/{category}": { + "get": { + "operationId": "getDriverStatsByCategoryCategoryDocs", + "tags": [ + "doc", + "driver_stats" + ], + "parameters": [ + { + "in": "path", + "name": "category", + "schema": { + "$ref": "#/components/schemas/iracingCategory" + }, + "required": true, + "description": "Racing category." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/hosted": { + "get": { + "operationId": "getHostedDocs", + "tags": [ + "doc", + "hosted" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/hosted/combined_sessions": { + "get": { + "operationId": "getHostedCombinedSessionsDocs", + "tags": [ + "doc", + "hosted" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/hosted/sessions": { + "get": { + "operationId": "getHostedSessionsDocs", + "tags": [ + "doc", + "hosted" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league": { + "get": { + "operationId": "getLeagueDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/cust_league_sessions": { + "get": { + "operationId": "getLeagueCustomerLeagueSessionsDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/directory": { + "get": { + "operationId": "getLeagueDirectoryDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/get": { + "get": { + "operationId": "getLeagueGetDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/get_points_systems": { + "get": { + "operationId": "getLeagueGetPointsSystemsDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/membership": { + "get": { + "operationId": "getLeagueMembershipDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/roster": { + "get": { + "operationId": "getLeagueRosterDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/seasons": { + "get": { + "operationId": "getLeagueSeasonsDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/season_standings": { + "get": { + "operationId": "getLeagueSeasonStandingsDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/league/season_sessions": { + "get": { + "operationId": "getLeagueSeasonSessionsDocs", + "tags": [ + "doc", + "league" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup": { + "get": { + "operationId": "getLookupDocs", + "tags": [ + "doc", + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/countries": { + "get": { + "operationId": "getLookupCountriesDocs", + "tags": [ + "doc", + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/drivers": { + "get": { + "operationId": "getLookupDriversDocs", + "tags": [ + "doc", + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/flairs": { + "get": { + "operationId": "getLookupFlairsDocs", + "tags": [ + "doc", + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/get": { + "get": { + "operationId": "getLookupGetDocs", + "tags": [ + "doc", + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/lookup/licenses": { + "get": { + "operationId": "getLookupLicensesDocs", + "tags": [ + "doc", + "lookup" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member": { + "get": { + "operationId": "getMemberDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/awards": { + "get": { + "operationId": "getMemberAwardsDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/award_instances": { + "get": { + "operationId": "getMemberAwardInstancesDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/chart_data": { + "get": { + "operationId": "getMemberChartDataDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/get": { + "get": { + "operationId": "getMemberGetDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/info": { + "get": { + "operationId": "getMemberInfoDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/participation_credits": { + "get": { + "operationId": "getMemberParticipationCreditsDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/member/profile": { + "get": { + "operationId": "getMemberProfileDocs", + "tags": [ + "doc", + "member" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results": { + "get": { + "operationId": "getResultsDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/get": { + "get": { + "operationId": "getResultsGetDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/event_log": { + "get": { + "operationId": "getResultsEventLogDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/lap_chart_data": { + "get": { + "operationId": "getResultsLapChartDataDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/lap_data": { + "get": { + "operationId": "getResultsLapDataDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/search_hosted": { + "get": { + "operationId": "getResultsSearchHostedDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/search_series": { + "get": { + "operationId": "getResultsSearchSeriesDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/results/season_results": { + "get": { + "operationId": "getResultsSeasonResultsDocs", + "tags": [ + "doc", + "results" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season": { + "get": { + "operationId": "getSeasonDocs", + "tags": [ + "doc", + "season" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/list": { + "get": { + "operationId": "getSeasonListDocs", + "tags": [ + "doc", + "season" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/race_guide": { + "get": { + "operationId": "getSeasonRaceGuideDocs", + "tags": [ + "doc", + "season" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/spectator_subsessionids": { + "get": { + "operationId": "getSeasonSpectatorSubsessionIdsDocs", + "tags": [ + "doc", + "season" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/season/spectator_subsessionids_detail": { + "get": { + "operationId": "getSeasonSpectatorSubsessionIdsDetailDocs", + "tags": [ + "doc", + "season" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series": { + "get": { + "operationId": "getSeriesDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/assets": { + "get": { + "operationId": "getSeriesAssetsDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/get": { + "get": { + "operationId": "getSeriesGetDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/past_seasons": { + "get": { + "operationId": "getSeriesPastSeasonsDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/seasons": { + "get": { + "operationId": "getSeriesSeasonsDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/season_list": { + "get": { + "operationId": "getSeriesSeasonListDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/season_schedule": { + "get": { + "operationId": "getSeriesSeasonScheduleDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/series/stats_series": { + "get": { + "operationId": "getSeriesStatsSeriesDocs", + "tags": [ + "doc", + "series" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats": { + "get": { + "operationId": "getStatsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_bests": { + "get": { + "operationId": "getStatsMemberBestsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_career": { + "get": { + "operationId": "getStatsMemberCareerDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_division": { + "get": { + "operationId": "getStatsMemberDivisionDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_recap": { + "get": { + "operationId": "getStatsMemberRecapDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_recent_races": { + "get": { + "operationId": "getStatsMemberRecentRacesDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_summary": { + "get": { + "operationId": "getStatsMemberSummaryDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/member_yearly": { + "get": { + "operationId": "getStatsMemberYearlyDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_driver_standings": { + "get": { + "operationId": "getStatsSeasonDriverStandingsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_supersession_standings": { + "get": { + "operationId": "getStatsSeasonSupersessionStandingsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_team_standings": { + "get": { + "operationId": "getStatsSeasonTeamStandingsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_tt_standings": { + "get": { + "operationId": "getStatsSeasonTTStandingsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_tt_results": { + "get": { + "operationId": "getStatsSeasonTTResultsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/season_qualify_results": { + "get": { + "operationId": "getStatsSeasonQualifyResultsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/stats/world_records": { + "get": { + "operationId": "getStatsWorldRecordsDocs", + "tags": [ + "doc", + "stats" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/team": { + "get": { + "operationId": "getTeamDocs", + "tags": [ + "doc", + "team" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/team/get": { + "get": { + "operationId": "getTeamGetDocs", + "tags": [ + "doc", + "team" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/team/membership": { + "get": { + "operationId": "getTeamMembershipDocs", + "tags": [ + "doc", + "team" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/time_attack": { + "get": { + "operationId": "getTimeAttackDocs", + "tags": [ + "doc", + "time_attack" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/time_attack/member_season_results": { + "get": { + "operationId": "getTimeAttackMemberSeasonResultsDocs", + "tags": [ + "doc", + "time_attack" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/track": { + "get": { + "operationId": "getTrackDocs", + "tags": [ + "doc", + "track" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/track/assets": { + "get": { + "operationId": "getTrackAssetsDocs", + "tags": [ + "doc", + "track" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/doc/track/get": { + "get": { + "operationId": "getTrackGetDocs", + "tags": [ + "doc", + "track" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ServiceMethodDocs" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/data/carclass/get": { + "get": { + "operationId": "getCarClass", + "summary": "Gets car classes.", + "tags": [ + "carclass" + ], + "externalDocs": { + "url": "/data/doc/carclass/get" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/car/assets": { + "get": { + "operationId": "getCarAssets", + "description": "image paths are relative to https://images-static.iracing.com/", + "tags": [ + "car" + ], + "externalDocs": { + "url": "/data/doc/car/assets" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/car/get": { + "get": { + "operationId": "getCar", + "tags": [ + "car" + ], + "externalDocs": { + "url": "/data/doc/car/get" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/constants/categories": { + "get": { + "operationId": "getConstantsCategories", + "description": "Constant; returned directly as an array of objects", + "tags": [ + "constants" + ], + "externalDocs": { + "url": "/data/doc/constants/categories" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/constants/divisions": { + "get": { + "operationId": "getConstantsDivisions", + "description": "Constant; returned directly as an array of objects", + "tags": [ + "constants" + ], + "externalDocs": { + "url": "/data/doc/constants/divisions" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/constants/event_types": { + "get": { + "operationId": "getConstantsEventTypes", + "description": "Constant; returned directly as an array of objects", + "tags": [ + "constants" + ], + "externalDocs": { + "url": "/data/doc/constants/event_types" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/driver_stats_by_category/{category}": { + "get": { + "operationId": "getDriverStatsByCategory", + "tags": [ + "driver_stats" + ], + "externalDocs": { + "url": "/data/doc/driver_stats_by_category/{category}" + }, + "parameters": [ + { + "in": "path", + "name": "category", + "schema": { + "$ref": "#/components/schemas/iracingCategory" + }, + "required": true, + "description": "Racing category." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/hosted/combined_sessions": { + "get": { + "operationId": "getHostedCombinedSessions", + "description": "Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.", + "tags": [ + "hosted" + ], + "externalDocs": { + "url": "/data/doc/hosted/combined_sessions" + }, + "parameters": [ + { + "in": "query", + "name": "package_id", + "schema": { + "description": "If set, return only sessions using this car or track package ID.", + "type": "number" + }, + "description": "If set, return only sessions using this car or track package ID." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/hosted/sessions": { + "get": { + "operationId": "getHostedSessions", + "description": "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", + "tags": [ + "hosted" + ], + "externalDocs": { + "url": "/data/doc/hosted/sessions" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/cust_league_sessions": { + "get": { + "operationId": "getLeagueCustomerLeagueSessions", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/cust_league_sessions" + }, + "parameters": [ + { + "in": "query", + "name": "mine", + "schema": { + "description": "If true, return only sessions created by this user.", + "type": "boolean" + }, + "description": "If true, return only sessions created by this user." + }, + { + "in": "query", + "name": "package_id", + "schema": { + "description": "If set, return only sessions using this car or track package ID.", + "type": "number" + }, + "description": "If set, return only sessions using this car or track package ID." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/directory": { + "get": { + "operationId": "getLeagueDirectory", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/directory" + }, + "parameters": [ + { + "in": "query", + "name": "search", + "schema": { + "description": "Will search against league name, description, owner, and league ID.", + "type": "string" + }, + "description": "Will search against league name, description, owner, and league ID." + }, + { + "in": "query", + "name": "tag", + "schema": { + "description": "One or more tags, comma-separated.", + "type": "string" + }, + "description": "One or more tags, comma-separated." + }, + { + "in": "query", + "name": "restrict_to_member", + "schema": { + "description": "If true include only leagues for which customer is a member.", + "type": "boolean" + }, + "description": "If true include only leagues for which customer is a member." + }, + { + "in": "query", + "name": "restrict_to_recruiting", + "schema": { + "description": "If true include only leagues which are recruiting.", + "type": "boolean" + }, + "description": "If true include only leagues which are recruiting." + }, + { + "in": "query", + "name": "restrict_to_friends", + "schema": { + "description": "If true include only leagues owned by a friend.", + "type": "boolean" + }, + "description": "If true include only leagues owned by a friend." + }, + { + "in": "query", + "name": "restrict_to_watched", + "schema": { + "description": "If true include only leagues owned by a watched member.", + "type": "boolean" + }, + "description": "If true include only leagues owned by a watched member." + }, + { + "in": "query", + "name": "minimum_roster_count", + "schema": { + "description": "If set include leagues with at least this number of members.", + "type": "number" + }, + "description": "If set include leagues with at least this number of members." + }, + { + "in": "query", + "name": "maximum_roster_count", + "schema": { + "description": "If set include leagues with no more than this number of members.", + "type": "number" + }, + "description": "If set include leagues with no more than this number of members." + }, + { + "in": "query", + "name": "lowerbound", + "schema": { + "description": "First row of results to return. Defaults to 1.", + "type": "number" + }, + "description": "First row of results to return. Defaults to 1." + }, + { + "in": "query", + "name": "upperbound", + "schema": { + "description": "Last row of results to return. Defaults to lowerbound + 39.", + "type": "number" + }, + "description": "Last row of results to return. Defaults to lowerbound + 39." + }, + { + "in": "query", + "name": "sort", + "schema": { + "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.", + "type": "string" + }, + "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance." + }, + { + "in": "query", + "name": "order", + "schema": { + "description": "One of asc or desc. Defaults to asc.", + "type": "string" + }, + "description": "One of asc or desc. Defaults to asc." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/get": { + "get": { + "operationId": "getLeague", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/get" + }, + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "description": "For faster responses, only request when necessary.", + "type": "boolean" + }, + "description": "For faster responses, only request when necessary." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/get_points_systems": { + "get": { + "operationId": "getLeaguePointsSystems", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/get_points_systems" + }, + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_id", + "schema": { + "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.", + "type": "number" + }, + "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/membership": { + "get": { + "operationId": "getLeagueMembership", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/membership" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.", + "$ref": "#/components/schemas/customerId" + }, + "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned." + }, + { + "in": "query", + "name": "include_league", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/roster": { + "get": { + "operationId": "getLeagueRoster", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/roster" + }, + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "description": "For faster responses, only request when necessary.", + "type": "boolean" + }, + "description": "For faster responses, only request when necessary." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/seasons": { + "get": { + "operationId": "getLeagueSeasons", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/seasons" + }, + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "retired", + "schema": { + "description": "If true include seasons which are no longer active.", + "type": "boolean" + }, + "description": "If true include seasons which are no longer active." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/season_standings": { + "get": { + "operationId": "getLeagueSeasonStandings", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/season_standings" + }, + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "car_id", + "schema": { + "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.", + "type": "number" + }, + "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/league/season_sessions": { + "get": { + "operationId": "getLeagueSeasonSessions", + "tags": [ + "league" + ], + "externalDocs": { + "url": "/data/doc/league/season_sessions" + }, + "parameters": [ + { + "in": "query", + "name": "league_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "results_only", + "schema": { + "description": "If true include only sessions for which results are available.", + "type": "boolean" + }, + "description": "If true include only sessions for which results are available." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/countries": { + "get": { + "operationId": "getLookupCountries", + "tags": [ + "lookup" + ], + "externalDocs": { + "url": "/data/doc/lookup/countries" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/flairs": { + "get": { + "operationId": "getLookupFlairs", + "tags": [ + "lookup" + ], + "externalDocs": { + "url": "/data/doc/lookup/flairs" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/licenses": { + "get": { + "operationId": "getLookupLicenses", + "tags": [ + "lookup" + ], + "externalDocs": { + "url": "/data/doc/lookup/licenses" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/drivers": { + "get": { + "operationId": "getLookupDrivers", + "tags": [ + "lookup" + ], + "externalDocs": { + "url": "/data/doc/lookup/drivers" + }, + "parameters": [ + { + "in": "query", + "name": "search_term", + "schema": { + "description": "A cust_id or partial name for which to search.", + "type": "string" + }, + "required": true, + "description": "A cust_id or partial name for which to search." + }, + { + "in": "query", + "name": "league_id", + "schema": { + "description": "Narrow the search to the roster of the given league.", + "type": "number" + }, + "description": "Narrow the search to the roster of the given league." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/lookup/get": { + "get": { + "operationId": "getLookup", + "tags": [ + "lookup" + ], + "externalDocs": { + "url": "/data/doc/lookup/get" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/awards": { + "get": { + "operationId": "getMemberAwards", + "tags": [ + "member" + ], + "externalDocs": { + "url": "/data/doc/member/awards" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/award_instances": { + "get": { + "operationId": "getMemberAwardInstances", + "tags": [ + "member" + ], + "externalDocs": { + "url": "/data/doc/member/award_instances" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "award_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/chart_data": { + "get": { + "operationId": "getMemberChartData", + "tags": [ + "member" + ], + "externalDocs": { + "url": "/data/doc/member/chart_data" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "category_id", + "schema": { + "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road", + "type": "number" + }, + "required": true, + "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road" + }, + { + "in": "query", + "name": "chart_type", + "schema": { + "description": "1 - iRating; 2 - TT Rating; 3 - License/SR", + "type": "number" + }, + "required": true, + "description": "1 - iRating; 2 - TT Rating; 3 - License/SR" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/get": { + "get": { + "operationId": "getMember", + "tags": [ + "member" + ], + "externalDocs": { + "url": "/data/doc/member/get" + }, + "parameters": [ + { + "in": "query", + "name": "cust_ids", + "schema": { + "description": "Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4", + "type": "string", + "pattern": "^\\d+(?:,\\d+)*$" + }, + "required": true, + "description": "Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4" + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/info": { + "get": { + "operationId": "getMemberInfo", + "tags": [ + "member" + ], + "externalDocs": { + "url": "/data/doc/member/info" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/participation_credits": { + "get": { + "operationId": "getMemberParticipationCredits", + "tags": [ + "member" + ], + "externalDocs": { + "url": "/data/doc/member/participation_credits" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/member/profile": { + "get": { + "operationId": "getMemberProfile", + "summary": "Gets a requested user's profile.", + "tags": [ + "member" + ], + "externalDocs": { + "url": "/data/doc/member/profile" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/get": { + "get": { + "operationId": "getResults", + "tags": [ + "results" + ], + "externalDocs": { + "url": "/data/doc/results/get" + }, + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/event_log": { + "get": { + "operationId": "getResultsEventLog", + "tags": [ + "results" + ], + "externalDocs": { + "url": "/data/doc/results/event_log" + }, + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "simsession_number", + "schema": { + "description": "The main event is 0; the preceding event is -1, and so on.", + "type": "number" + }, + "required": true, + "description": "The main event is 0; the preceding event is -1, and so on." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/lap_chart_data": { + "get": { + "operationId": "getResultsLapChartData", + "tags": [ + "results" + ], + "externalDocs": { + "url": "/data/doc/results/lap_chart_data" + }, + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "simsession_number", + "schema": { + "description": "The main event is 0; the preceding event is -1, and so on.", + "type": "number" + }, + "required": true, + "description": "The main event is 0; the preceding event is -1, and so on." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/lap_data": { + "get": { + "operationId": "getResultsLapData", + "tags": [ + "results" + ], + "externalDocs": { + "url": "/data/doc/results/lap_data" + }, + "parameters": [ + { + "in": "query", + "name": "subsession_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "simsession_number", + "schema": { + "description": "The main event is 0; the preceding event is -1, and so on.", + "type": "number" + }, + "required": true, + "description": "The main event is 0; the preceding event is -1, and so on." + }, + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included." + }, + { + "in": "query", + "name": "team_id", + "schema": { + "description": "Required if the subsession was a team event.", + "type": "number" + }, + "description": "Required if the subsession was a team event." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/search_hosted": { + "get": { + "operationId": "getResultsSearchHosted", + "tags": [ + "results" + ], + "externalDocs": { + "url": "/data/doc/results/search_hosted" + }, + "parameters": [ + { + "in": "query", + "name": "start_range_begin", + "schema": { + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "start_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "finish_range_begin", + "schema": { + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "finish_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "The participant's customer ID. Ignored if team_id is supplied.", + "$ref": "#/components/schemas/customerId" + }, + "description": "The participant's customer ID. Ignored if team_id is supplied." + }, + { + "in": "query", + "name": "team_id", + "schema": { + "description": "The team ID to search for. Takes priority over cust_id if both are supplied.", + "type": "number" + }, + "description": "The team ID to search for. Takes priority over cust_id if both are supplied." + }, + { + "in": "query", + "name": "host_cust_id", + "schema": { + "description": "The host's customer ID.", + "$ref": "#/components/schemas/customerId" + }, + "description": "The host's customer ID." + }, + { + "in": "query", + "name": "session_name", + "schema": { + "description": "Part or all of the session's name.", + "type": "string" + }, + "description": "Part or all of the session's name." + }, + { + "in": "query", + "name": "league_id", + "schema": { + "description": "Include only results for the league with this ID.", + "type": "number" + }, + "description": "Include only results for the league with this ID." + }, + { + "in": "query", + "name": "league_season_id", + "schema": { + "description": "Include only results for the league season with this ID.", + "type": "number" + }, + "description": "Include only results for the league season with this ID." + }, + { + "in": "query", + "name": "car_id", + "schema": { + "description": "One of the cars used by the session.", + "type": "number" + }, + "description": "One of the cars used by the session." + }, + { + "in": "query", + "name": "track_id", + "schema": { + "description": "The ID of the track used by the session.", + "type": "number" + }, + "description": "The ID of the track used by the session." + }, + { + "in": "query", + "name": "category_ids", + "schema": { + "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + "type": "string", + "pattern": "^\\d+(?:,\\d+)*$" + }, + "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/search_series": { + "get": { + "operationId": "getResultsSearchSeries", + "tags": [ + "results" + ], + "externalDocs": { + "url": "/data/doc/results/search_series" + }, + "parameters": [ + { + "in": "query", + "name": "season_year", + "schema": { + "description": "Required when using season_quarter.", + "type": "number" + }, + "description": "Required when using season_quarter." + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "description": "Required when using season_year.", + "type": "number" + }, + "description": "Required when using season_year." + }, + { + "in": "query", + "name": "start_range_begin", + "schema": { + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "start_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "finish_range_begin", + "schema": { + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." + }, + { + "in": "query", + "name": "finish_range_end", + "schema": { + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + }, + "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." + }, + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied." + }, + { + "in": "query", + "name": "team_id", + "schema": { + "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", + "type": "number" + }, + "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied." + }, + { + "in": "query", + "name": "series_id", + "schema": { + "description": "Include only sessions for series with this ID.", + "type": "number" + }, + "description": "Include only sessions for series with this ID." + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "Include only sessions with this race week number.", + "type": "number" + }, + "description": "Include only sessions with this race week number." + }, + { + "in": "query", + "name": "official_only", + "schema": { + "description": "If true, include only sessions earning championship points. Defaults to all.", + "type": "boolean" + }, + "description": "If true, include only sessions earning championship points. Defaults to all." + }, + { + "in": "query", + "name": "event_types", + "schema": { + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + "type": "string", + "pattern": "^\\d+(?:,\\d+)*$" + }, + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" + }, + { + "in": "query", + "name": "category_ids", + "schema": { + "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", + "type": "string", + "pattern": "^\\d+(?:,\\d+)*$" + }, + "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/results/season_results": { + "get": { + "operationId": "getResultsSeasonResults", + "tags": [ + "results" + ], + "externalDocs": { + "url": "/data/doc/results/season_results" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "event_type", + "schema": { + "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race", + "$ref": "#/components/schemas/iracingEventType" + }, + "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race" + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/season/list": { + "get": { + "operationId": "getSeasonList", + "tags": [ + "season" + ], + "externalDocs": { + "url": "/data/doc/season/list" + }, + "parameters": [ + { + "in": "query", + "name": "season_year", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/season/race_guide": { + "get": { + "operationId": "getSeasonRaceGuide", + "tags": [ + "season" + ], + "externalDocs": { + "url": "/data/doc/season/race_guide" + }, + "parameters": [ + { + "in": "query", + "name": "from", + "schema": { + "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.", + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" + }, + "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time." + }, + { + "in": "query", + "name": "include_end_after_from", + "schema": { + "description": "Include sessions which start before 'from' but end after.", + "type": "boolean" + }, + "description": "Include sessions which start before 'from' but end after." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/season/spectator_subsessionids": { + "get": { + "operationId": "getSeasonSpectatorSubsessionIds", + "tags": [ + "season" + ], + "externalDocs": { + "url": "/data/doc/season/spectator_subsessionids" + }, + "parameters": [ + { + "in": "query", + "name": "event_types", + "schema": { + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + "type": "array", + "items": { + "$ref": "#/components/schemas/iracingEventType" + } + }, + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/season/spectator_subsessionids_detail": { + "get": { + "operationId": "getSeasonSpectatorSubsessionIdsDetail", + "tags": [ + "season" + ], + "externalDocs": { + "url": "/data/doc/season/spectator_subsessionids_detail" + }, + "parameters": [ + { + "in": "query", + "name": "event_types", + "schema": { + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", + "type": "array", + "items": { + "$ref": "#/components/schemas/iracingEventType" + } + }, + "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" + }, + { + "in": "query", + "name": "season_ids", + "schema": { + "description": "Seasons to include in the search. Defaults to all. ?season_ids=513,937", + "type": "array", + "items": { + "type": "number" + } + }, + "description": "Seasons to include in the search. Defaults to all. ?season_ids=513,937" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/assets": { + "get": { + "operationId": "getSeriesAssets", + "tags": [ + "series" + ], + "externalDocs": { + "url": "/data/doc/series/assets" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/get": { + "get": { + "operationId": "getSeries", + "tags": [ + "series" + ], + "externalDocs": { + "url": "/data/doc/series/get" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/past_seasons": { + "get": { + "operationId": "getSeriesPastSeasons", + "tags": [ + "series" + ], + "externalDocs": { + "url": "/data/doc/series/past_seasons" + }, + "parameters": [ + { + "in": "query", + "name": "series_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/seasons": { + "get": { + "operationId": "getSeriesSeasons", + "tags": [ + "series" + ], + "externalDocs": { + "url": "/data/doc/series/seasons" + }, + "parameters": [ + { + "in": "query", + "name": "include_series", + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "season_year", + "schema": { + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + "type": "number" + }, + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", + "type": "number" + }, + "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/season_list": { + "get": { + "operationId": "getSeriesSeasonList", + "tags": [ + "series" + ], + "externalDocs": { + "url": "/data/doc/series/season_list" + }, + "parameters": [ + { + "in": "query", + "name": "include_series", + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "season_year", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/season_schedule": { + "get": { + "operationId": "getSeriesSeasonSchedule", + "tags": [ + "series" + ], + "externalDocs": { + "url": "/data/doc/series/season_schedule" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/series/stats_series": { + "get": { + "operationId": "getSeriesStatsSeries", + "tags": [ + "series" + ], + "externalDocs": { + "url": "/data/doc/series/stats_series" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_bests": { + "get": { + "operationId": "getStatsMemberBests", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/member_bests" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "car_id", + "schema": { + "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls.", + "type": "number" + }, + "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_career": { + "get": { + "operationId": "getStatsMemberCareer", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/member_career" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_division": { + "get": { + "operationId": "getStatsMemberDivision", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/member_division" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "event_type", + "schema": { + "description": "The event type code for the division type: 4 - Time Trial; 5 - Race", + "anyOf": [ + { + "description": "Time trial", + "type": "number", + "const": 4 + }, + { + "description": "Race", + "type": "number", + "const": 5 + } + ] + }, + "required": true, + "description": "The event type code for the division type: 4 - Time Trial; 5 - Race" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_recap": { + "get": { + "operationId": "getStatsMemberRecap", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/member_recap" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + }, + { + "in": "query", + "name": "year", + "schema": { + "description": "Season year; if not supplied the current calendar year (UTC) is used.", + "anyOf": [ + { + "type": "number", + "const": 1 + }, + { + "type": "number", + "const": 2 + }, + { + "type": "number", + "const": 3 + }, + { + "type": "number", + "const": 4 + } + ] + }, + "description": "Season year; if not supplied the current calendar year (UTC) is used." + }, + { + "in": "query", + "name": "season", + "schema": { + "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year.", + "type": "number" + }, + "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_recent_races": { + "get": { + "operationId": "getStatsMemberRecentRaces", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/member_recent_races" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_summary": { + "get": { + "operationId": "getStatsMemberSummary", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/member_summary" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/member_yearly": { + "get": { + "operationId": "getStatsMemberYearly", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/member_yearly" + }, + "parameters": [ + { + "in": "query", + "name": "cust_id", + "schema": { + "description": "Defaults to the authenticated member.", + "$ref": "#/components/schemas/customerId" + }, + "description": "Defaults to the authenticated member." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_driver_standings": { + "get": { + "operationId": "getStatsSeasonDriverStandings", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/season_driver_standings" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_supersession_standings": { + "get": { + "operationId": "getStatsSeasonSupersessionStandings", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/season_supersession_standings" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_team_standings": { + "get": { + "operationId": "getStatsSeasonTeamStandings", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/season_team_standings" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_time_trial_standings": { + "get": { + "operationId": "getStatsSeasonTimeTrialStandings", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/season_time_trial_standings" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "description": "The first race week of a season is 0." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_time_trial_results": { + "get": { + "operationId": "getStatsSeasonTimeTrialResults", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/season_time_trial_results" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "required": true, + "description": "The first race week of a season is 0." + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/season_qualify_results": { + "get": { + "operationId": "getStatsSeasonQualifyResults", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/season_qualify_results" + }, + "parameters": [ + { + "in": "query", + "name": "season_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "car_class_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "race_week_num", + "schema": { + "description": "The first race week of a season is 0.", + "type": "number" + }, + "required": true, + "description": "The first race week of a season is 0." + }, + { + "in": "query", + "name": "division", + "schema": { + "$ref": "#/components/schemas/iracingDivision" + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/stats/world_records": { + "get": { + "operationId": "getStatsWorldRecords", + "tags": [ + "stats" + ], + "externalDocs": { + "url": "/data/doc/stats/world_records" + }, + "parameters": [ + { + "in": "query", + "name": "car_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "track_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "season_year", + "schema": { + "description": "Limit best times to a given year.", + "type": "number" + }, + "description": "Limit best times to a given year." + }, + { + "in": "query", + "name": "season_quarter", + "schema": { + "description": "Limit best times to a given quarter; only applicable when year is used.", + "type": "number" + }, + "description": "Limit best times to a given quarter; only applicable when year is used." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/team/get": { + "get": { + "operationId": "getTeam", + "tags": [ + "team" + ], + "externalDocs": { + "url": "/data/doc/team/get" + }, + "parameters": [ + { + "in": "query", + "name": "team_id", + "schema": { + "type": "number" + }, + "required": true + }, + { + "in": "query", + "name": "include_licenses", + "schema": { + "description": "For faster responses, only request when necessary.", + "type": "boolean" + }, + "description": "For faster responses, only request when necessary." + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/team/membership": { + "get": { + "operationId": "getTeamMembership", + "tags": [ + "team" + ], + "externalDocs": { + "url": "/data/doc/team/membership" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/time_attack/member_season_results": { + "get": { + "operationId": "getTimeAttackMemberSeasonResults", + "tags": [ + "time_attack" + ], + "externalDocs": { + "url": "/data/doc/time_attack/member_season_results" + }, + "parameters": [ + { + "in": "query", + "name": "ta_comp_season_id", + "schema": { + "type": "number" + }, + "required": true + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/track/assets": { + "get": { + "operationId": "getTrackAssets", + "tags": [ + "track" + ], + "externalDocs": { + "url": "/data/doc/track/assets" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + }, + "/data/track/get": { + "get": { + "operationId": "getTrack", + "tags": [ + "track" + ], + "externalDocs": { + "url": "/data/doc/track/get" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Success" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "429": { + "$ref": "#/components/responses/RateLimited" + }, + "503": { + "$ref": "#/components/responses/Maintenance" + } + } + } + } + }, + "components": { + "schemas": { + "iracingCategory": { + "description": "Racing category.", + "anyOf": [ + { + "description": "Oval discipline", + "type": "string", + "const": "oval" + }, + { + "description": "Road discipline. Legacy, use `sports_car` or `formula_car` instead.", + "type": "string", + "const": "road" + }, + { + "description": "Dirt road discipline.", + "type": "string", + "const": "dirt_road" + }, + { + "description": "Dirt oval discipline.", + "type": "string", + "const": "dirt_oval" + }, + { + "description": "Sports car discipline.", + "type": "string", + "const": "sports_car" + }, + { + "description": "Formula car discipline.", + "type": "string", + "const": "formula_car" + } + ] + }, + "customerId": { + "description": "Numeric ID of a customer on iRacing.", + "type": "number" + }, + "iracingEventType": { + "description": "iRacing Event Type", + "anyOf": [ + { + "description": "Practice", + "type": "number", + "const": 2 + }, + { + "description": "Qualifying", + "type": "number", + "const": 3 + }, + { + "description": "Time trial", + "type": "number", + "const": 4 + }, + { + "description": "Race", + "type": "number", + "const": 5 + } + ] + }, + "iracingDivision": { + "description": "iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.", + "anyOf": [ + { + "description": "Division 1", + "type": "number", + "const": 0 + }, + { + "description": "Division 2", + "type": "number", + "const": 1 + }, + { + "description": "Division 3", + "type": "number", + "const": 2 + }, + { + "description": "Division 4", + "type": "number", + "const": 3 + }, + { + "description": "Division 5", + "type": "number", + "const": 4 + }, + { + "description": "Division 6", + "type": "number", + "const": 5 + }, + { + "description": "Division 7", + "type": "number", + "const": 6 + }, + { + "description": "Division 8", + "type": "number", + "const": 7 + }, + { + "description": "Division 9", + "type": "number", + "const": 8 + }, + { + "description": "Division 10", + "type": "number", + "const": 9 + }, + { + "description": "Rookie", + "type": "number", + "const": 10 + } + ] + }, + "iracingAPIResponse": { + "description": "Response from iRacing `/data` API.", + "type": "object", + "properties": { + "link": { + "description": "A link to the cached data", + "type": "string", + "format": "uri" + }, + "expires": { + "type": "string", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" + } + }, + "required": [ + "link", + "expires" + ], + "additionalProperties": false + }, + "iracingServicesDocs": { + "description": "An index of available services on the iRacing API.", + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/components/schemas/iracingServiceDocs" + } + }, + "iracingServiceDocs": { + "description": "An index of service methods available for the requested service.", + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/components/schemas/iracingServiceMethodDocs" + } + }, + "iracingServiceMethodDocs": { + "description": "An iRacing API Service Method object.", + "type": "object", + "properties": { + "link": { + "type": "string", + "format": "uri" + }, + "parameters": { + "type": "object", + "propertyNames": { + "type": "string" + }, + "additionalProperties": { + "$ref": "#/components/schemas/iracingServiceMethodParametersDocs" + } + }, + "expirationSeconds": { + "type": "number" + } + }, + "required": [ + "link", + "parameters" + ], + "additionalProperties": false + }, + "iracingServiceMethodParametersDocs": { + "description": "An iRacing API Service Method Parameters object.", + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "note": { + "type": "string" + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "type" + ], + "additionalProperties": false + }, + "errorResponse": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + }, + "note": { + "type": "string" + } + }, + "required": [ + "error" + ], + "additionalProperties": false + } + }, + "headers": { + "x-ratelimit-limit": { + "required": true, + "description": "The current total rate limit.", + "schema": { + "title": "Rate limit limit", + "description": "The current total rate limit.", + "type": "number" + } + }, + "x-ratelimit-remaining": { + "required": true, + "description": "How much of the rate limit you have remaining.", + "schema": { + "title": "Rate limit remaining", + "description": "How much of the rate limit you have remaining.", + "type": "number" + } + }, + "x-ratelimit-reset": { + "required": true, + "description": "When the rate limit will reset in epoch timestamp.", + "schema": { + "title": "Rate limit reset", + "description": "When the rate limit will reset in epoch timestamp.", + "type": "string" + } + } + }, + "responses": { + "Success": { + "description": "Success", + "headers": { + "x-ratelimit-limit": { + "$ref": "#/components/headers/x-ratelimit-limit" + }, + "x-ratelimit-remaining": { + "$ref": "#/components/headers/x-ratelimit-remaining" + }, + "x-ratelimit-reset": { + "$ref": "#/components/headers/x-ratelimit-reset" + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/iracingAPIResponse" + } + } + } + }, + "Docs": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/iracingServicesDocs" + } + } + } + }, + "ServiceDocs": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/iracingServiceDocs" + } + } + } + }, + "ServiceMethodDocs": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/iracingServiceMethodDocs" + } + } + } + }, + "RateLimited": { + "description": "Rate limited", + "headers": { + "x-ratelimit-limit": { + "$ref": "#/components/headers/x-ratelimit-limit" + }, + "x-ratelimit-remaining": { + "$ref": "#/components/headers/x-ratelimit-remaining" + }, + "x-ratelimit-reset": { + "$ref": "#/components/headers/x-ratelimit-reset" + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errorResponse" + } + } + } + }, + "Maintenance": { + "description": "Maintenance", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errorResponse" + } + } + } + }, + "Unauthorized": { + "description": "Access token is missing or invalid.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errorResponse" + } + } + } + } + }, + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "JWT Authentication" + }, + "oAuth2": { + "type": "oauth2", + "description": "OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://oauth.iracing.com/oauth2/authorize", + "tokenUrl": "https://oauth.iracing.com/oauth2/token", + "scopes": { + "iracing.auth": "Authorization for iRacing services.", + "iracing.profile": "Access to the iRacing profile." + } + } + } + } + } + } +} \ No newline at end of file diff --git a/packages/api-client/src/client/.openapi-generator/FILES b/packages/api-client/src/client/.openapi-generator/FILES index 18e6ddc..65c859b 100644 --- a/packages/api-client/src/client/.openapi-generator/FILES +++ b/packages/api-client/src/client/.openapi-generator/FILES @@ -14,7 +14,6 @@ docs/ErrorResponse.md docs/HostedApi.md docs/IracingAPIResponse.md docs/IracingCategory.md -docs/IracingChartType.md docs/IracingDivision.md docs/IracingEventType.md docs/IracingServiceMethodDocs.md diff --git a/packages/api-client/src/client/README.md b/packages/api-client/src/client/README.md index 8d91cad..2c7fcc1 100644 --- a/packages/api-client/src/client/README.md +++ b/packages/api-client/src/client/README.md @@ -222,6 +222,8 @@ Class | Method | HTTP request | Description *SeasonApi* | [**getSeasonListDocs**](docs/SeasonApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | *SeasonApi* | [**getSeasonRaceGuide**](docs/SeasonApi.md#getseasonraceguide) | **GET** /data/season/race_guide | *SeasonApi* | [**getSeasonRaceGuideDocs**](docs/SeasonApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | +*SeasonApi* | [**getSeasonSpectatorSubsessionIds**](docs/SeasonApi.md#getseasonspectatorsubsessionids) | **GET** /data/season/spectator_subsessionids | +*SeasonApi* | [**getSeasonSpectatorSubsessionIdsDetail**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdetail) | **GET** /data/season/spectator_subsessionids_detail | *SeasonApi* | [**getSeasonSpectatorSubsessionIdsDetailDocs**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | *SeasonApi* | [**getSeasonSpectatorSubsessionIdsDocs**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | *SeriesApi* | [**getSeries**](docs/SeriesApi.md#getseries) | **GET** /data/series/get | @@ -288,7 +290,6 @@ Class | Method | HTTP request | Description - [ErrorResponse](docs/ErrorResponse.md) - [IracingAPIResponse](docs/IracingAPIResponse.md) - [IracingCategory](docs/IracingCategory.md) - - [IracingChartType](docs/IracingChartType.md) - [IracingDivision](docs/IracingDivision.md) - [IracingEventType](docs/IracingEventType.md) - [IracingServiceMethodDocs](docs/IracingServiceMethodDocs.md) diff --git a/packages/api-client/src/client/api.ts b/packages/api-client/src/client/api.ts index a8ca50f..a072c0d 100644 --- a/packages/api-client/src/client/api.ts +++ b/packages/api-client/src/client/api.ts @@ -72,28 +72,6 @@ export const IracingCategory = { export type IracingCategory = typeof IracingCategory[keyof typeof IracingCategory]; -/** - * iRacing Chart Type - */ - -export const IracingChartType = { - /** - * iRating - */ - NUMBER_1: 1, - /** - * Time trial rating - */ - NUMBER_2: 2, - /** - * License rating - */ - NUMBER_3: 3 -} as const; - -export type IracingChartType = typeof IracingChartType[keyof typeof IracingChartType]; - - /** * iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. */ @@ -9252,12 +9230,12 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio return { /** * - * @param {Array} cust_ids ?cust_ids=2,3,4 + * @param {string} cust_ids Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 * @param {boolean} [include_licenses] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMember: async (cust_ids: Array, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + getMember: async (cust_ids: string, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'cust_ids' is not null or undefined assertParamExists('getMember', 'cust_ids', cust_ids) const localVarPath = `/data/member/get`; @@ -9276,7 +9254,7 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_ids) { + if (cust_ids !== undefined) { localVarQueryParameter['cust_ids'] = cust_ids; } @@ -9447,12 +9425,12 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio /** * * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road - * @param {IracingChartType} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR + * @param {number} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberChartData: async (category_id: number, chart_type: IracingChartType, cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + getMemberChartData: async (category_id: number, chart_type: number, cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'category_id' is not null or undefined assertParamExists('getMemberChartData', 'category_id', category_id) // verify required parameter 'chart_type' is not null or undefined @@ -9810,12 +9788,12 @@ export const MemberApiFp = function(configuration?: Configuration) { return { /** * - * @param {Array} cust_ids ?cust_ids=2,3,4 + * @param {string} cust_ids Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 * @param {boolean} [include_licenses] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMember(cust_ids: Array, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + async getMember(cust_ids: string, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getMember(cust_ids, include_licenses, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['MemberApi.getMember']?.[localVarOperationServerIndex]?.url; @@ -9871,12 +9849,12 @@ export const MemberApiFp = function(configuration?: Configuration) { /** * * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road - * @param {IracingChartType} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR + * @param {number} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getMemberChartData(category_id: number, chart_type: IracingChartType, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + async getMemberChartData(category_id: number, chart_type: number, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartData(category_id, chart_type, cust_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberChartData']?.[localVarOperationServerIndex]?.url; @@ -10126,9 +10104,9 @@ export const MemberApiFactory = function (configuration?: Configuration, basePat */ export interface MemberApiGetMemberRequest { /** - * ?cust_ids=2,3,4 + * Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 */ - readonly cust_ids: Array + readonly cust_ids: string readonly include_licenses?: boolean } @@ -10167,7 +10145,7 @@ export interface MemberApiGetMemberChartDataRequest { /** * 1 - iRating; 2 - TT Rating; 3 - License/SR */ - readonly chart_type: IracingChartType + readonly chart_type: number /** * Defaults to the authenticated member. @@ -10713,11 +10691,11 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati * @param {number} [league_season_id] Include only results for the league season with this ID. * @param {number} [car_id] One of the cars used by the session. * @param {number} [track_id] The ID of the track used by the session. - * @param {Array} [category_ids] Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {string} [category_ids] Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchHosted: async (start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, host_cust_id?: number, session_name?: string, league_id?: number, league_season_id?: number, car_id?: number, track_id?: number, category_ids?: Array, options: RawAxiosRequestConfig = {}): Promise => { + getResultsSearchHosted: async (start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, host_cust_id?: number, session_name?: string, league_id?: number, league_season_id?: number, car_id?: number, track_id?: number, category_ids?: string, options: RawAxiosRequestConfig = {}): Promise => { const localVarPath = `/data/results/search_hosted`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -10790,7 +10768,7 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati localVarQueryParameter['track_id'] = track_id; } - if (category_ids) { + if (category_ids !== undefined) { localVarQueryParameter['category_ids'] = category_ids; } @@ -10851,12 +10829,12 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati * @param {number} [series_id] Include only sessions for series with this ID. * @param {number} [race_week_num] Include only sessions with this race week number. * @param {boolean} [official_only] If true, include only sessions earning championship points. Defaults to all. - * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 - * @param {Array} [category_ids] License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {string} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {string} [category_ids] License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchSeries: async (season_year?: number, season_quarter?: number, start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, series_id?: number, race_week_num?: number, official_only?: boolean, event_types?: Array, category_ids?: Array, options: RawAxiosRequestConfig = {}): Promise => { + getResultsSearchSeries: async (season_year?: number, season_quarter?: number, start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, series_id?: number, race_week_num?: number, official_only?: boolean, event_types?: string, category_ids?: string, options: RawAxiosRequestConfig = {}): Promise => { const localVarPath = `/data/results/search_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -10925,11 +10903,11 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati localVarQueryParameter['official_only'] = official_only; } - if (event_types) { + if (event_types !== undefined) { localVarQueryParameter['event_types'] = event_types; } - if (category_ids) { + if (category_ids !== undefined) { localVarQueryParameter['category_ids'] = category_ids; } @@ -11192,11 +11170,11 @@ export const ResultsApiFp = function(configuration?: Configuration) { * @param {number} [league_season_id] Include only results for the league season with this ID. * @param {number} [car_id] One of the cars used by the session. * @param {number} [track_id] The ID of the track used by the session. - * @param {Array} [category_ids] Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {string} [category_ids] Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsSearchHosted(start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, host_cust_id?: number, session_name?: string, league_id?: number, league_season_id?: number, car_id?: number, track_id?: number, category_ids?: Array, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + async getResultsSearchHosted(start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, host_cust_id?: number, session_name?: string, league_id?: number, league_season_id?: number, car_id?: number, track_id?: number, category_ids?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchHosted(start_range_begin, start_range_end, finish_range_begin, finish_range_end, cust_id, team_id, host_cust_id, session_name, league_id, league_season_id, car_id, track_id, category_ids, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchHosted']?.[localVarOperationServerIndex]?.url; @@ -11226,12 +11204,12 @@ export const ResultsApiFp = function(configuration?: Configuration) { * @param {number} [series_id] Include only sessions for series with this ID. * @param {number} [race_week_num] Include only sessions with this race week number. * @param {boolean} [official_only] If true, include only sessions earning championship points. Defaults to all. - * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 - * @param {Array} [category_ids] License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 + * @param {string} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {string} [category_ids] License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getResultsSearchSeries(season_year?: number, season_quarter?: number, start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, series_id?: number, race_week_num?: number, official_only?: boolean, event_types?: Array, category_ids?: Array, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + async getResultsSearchSeries(season_year?: number, season_quarter?: number, start_range_begin?: string, start_range_end?: string, finish_range_begin?: string, finish_range_end?: string, cust_id?: number, team_id?: number, series_id?: number, race_week_num?: number, official_only?: boolean, event_types?: string, category_ids?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchSeries(season_year, season_quarter, start_range_begin, start_range_end, finish_range_begin, finish_range_end, cust_id, team_id, series_id, race_week_num, official_only, event_types, category_ids, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchSeries']?.[localVarOperationServerIndex]?.url; @@ -11534,7 +11512,7 @@ export interface ResultsApiGetResultsSearchHostedRequest { /** * Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 */ - readonly category_ids?: Array + readonly category_ids?: string } /** @@ -11599,12 +11577,12 @@ export interface ResultsApiGetResultsSearchSeriesRequest { /** * Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 */ - readonly event_types?: Array + readonly event_types?: string /** * License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 */ - readonly category_ids?: Array + readonly category_ids?: string } /** @@ -11960,6 +11938,87 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonSpectatorSubsessionIds: async (event_types?: Array, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/season/spectator_subsessionids`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (event_types) { + localVarQueryParameter['event_types'] = event_types; + } + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {Array} [season_ids] Seasons to include in the search. Defaults to all. ?season_ids=513,937 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonSpectatorSubsessionIdsDetail: async (event_types?: Array, season_ids?: Array, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/season/spectator_subsessionids_detail`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + if (event_types) { + localVarQueryParameter['event_types'] = event_types; + } + + if (season_ids) { + localVarQueryParameter['season_ids'] = season_ids; + } + + + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -12103,6 +12162,31 @@ export const SeasonApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonRaceGuideDocs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, + /** + * + * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonSpectatorSubsessionIds(event_types?: Array, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIds(event_types, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonSpectatorSubsessionIds']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + * @param {Array} [season_ids] Seasons to include in the search. Defaults to all. ?season_ids=513,937 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeasonSpectatorSubsessionIdsDetail(event_types?: Array, season_ids?: Array, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIdsDetail(event_types, season_ids, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonSpectatorSubsessionIdsDetail']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, /** * * @param {*} [options] Override http request option. @@ -12176,6 +12260,24 @@ export const SeasonApiFactory = function (configuration?: Configuration, basePat getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeasonRaceGuideDocs(options).then((request) => request(axios, basePath)); }, + /** + * + * @param {SeasonApiGetSeasonSpectatorSubsessionIdsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonSpectatorSubsessionIds(requestParameters: SeasonApiGetSeasonSpectatorSubsessionIdsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonSpectatorSubsessionIds(requestParameters.event_types, options).then((request) => request(axios, basePath)); + }, + /** + * + * @param {SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getSeasonSpectatorSubsessionIdsDetail(requestParameters: SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeasonSpectatorSubsessionIdsDetail(requestParameters.event_types, requestParameters.season_ids, options).then((request) => request(axios, basePath)); + }, /** * * @param {*} [options] Override http request option. @@ -12219,6 +12321,31 @@ export interface SeasonApiGetSeasonRaceGuideRequest { readonly include_end_after_from?: boolean } +/** + * Request parameters for getSeasonSpectatorSubsessionIds operation in SeasonApi. + */ +export interface SeasonApiGetSeasonSpectatorSubsessionIdsRequest { + /** + * Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + */ + readonly event_types?: Array +} + +/** + * Request parameters for getSeasonSpectatorSubsessionIdsDetail operation in SeasonApi. + */ +export interface SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest { + /** + * Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 + */ + readonly event_types?: Array + + /** + * Seasons to include in the search. Defaults to all. ?season_ids=513,937 + */ + readonly season_ids?: Array +} + /** * SeasonApi - object-oriented interface */ @@ -12270,6 +12397,26 @@ export class SeasonApi extends BaseAPI { return SeasonApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); } + /** + * + * @param {SeasonApiGetSeasonSpectatorSubsessionIdsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonSpectatorSubsessionIds(requestParameters: SeasonApiGetSeasonSpectatorSubsessionIdsRequest = {}, options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonSpectatorSubsessionIds(requestParameters.event_types, options).then((request) => request(this.axios, this.basePath)); + } + + /** + * + * @param {SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeasonSpectatorSubsessionIdsDetail(requestParameters: SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest = {}, options?: RawAxiosRequestConfig) { + return SeasonApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDetail(requestParameters.event_types, requestParameters.season_ids, options).then((request) => request(this.axios, this.basePath)); + } + /** * * @param {*} [options] Override http request option. diff --git a/packages/api-client/src/client/docs/MemberApi.md b/packages/api-client/src/client/docs/MemberApi.md index d571c22..9990782 100644 --- a/packages/api-client/src/client/docs/MemberApi.md +++ b/packages/api-client/src/client/docs/MemberApi.md @@ -35,7 +35,7 @@ import { const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); -let cust_ids: Array; //?cust_ids=2,3,4 (default to undefined) +let cust_ids: string; //Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 (default to undefined) let include_licenses: boolean; // (optional) (default to undefined) const { status, data } = await apiInstance.getMember( @@ -48,7 +48,7 @@ const { status, data } = await apiInstance.getMember( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **cust_ids** | **Array<number>** | ?cust_ids=2,3,4 | defaults to undefined| +| **cust_ids** | [**string**] | Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 | defaults to undefined| | **include_licenses** | [**boolean**] | | (optional) defaults to undefined| @@ -289,7 +289,7 @@ const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); let category_id: number; //1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road (default to undefined) -let chart_type: IracingChartType; //1 - iRating; 2 - TT Rating; 3 - License/SR (default to undefined) +let chart_type: number; //1 - iRating; 2 - TT Rating; 3 - License/SR (default to undefined) let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) const { status, data } = await apiInstance.getMemberChartData( @@ -304,7 +304,7 @@ const { status, data } = await apiInstance.getMemberChartData( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| | **category_id** | [**number**] | 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road | defaults to undefined| -| **chart_type** | **IracingChartType** | 1 - iRating; 2 - TT Rating; 3 - License/SR | defaults to undefined| +| **chart_type** | [**number**] | 1 - iRating; 2 - TT Rating; 3 - License/SR | defaults to undefined| | **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| diff --git a/packages/api-client/src/client/docs/ResultsApi.md b/packages/api-client/src/client/docs/ResultsApi.md index bd2a949..0b25533 100644 --- a/packages/api-client/src/client/docs/ResultsApi.md +++ b/packages/api-client/src/client/docs/ResultsApi.md @@ -497,7 +497,7 @@ let league_id: number; //Include only results for the league with this ID. (opti let league_season_id: number; //Include only results for the league season with this ID. (optional) (default to undefined) let car_id: number; //One of the cars used by the session. (optional) (default to undefined) let track_id: number; //The ID of the track used by the session. (optional) (default to undefined) -let category_ids: Array; //Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) (default to undefined) +let category_ids: string; //Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) (default to undefined) const { status, data } = await apiInstance.getResultsSearchHosted( start_range_begin, @@ -532,7 +532,7 @@ const { status, data } = await apiInstance.getResultsSearchHosted( | **league_season_id** | [**number**] | Include only results for the league season with this ID. | (optional) defaults to undefined| | **car_id** | [**number**] | One of the cars used by the session. | (optional) defaults to undefined| | **track_id** | [**number**] | The ID of the track used by the session. | (optional) defaults to undefined| -| **category_ids** | **Array<number>** | Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | (optional) defaults to undefined| +| **category_ids** | [**string**] | Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | (optional) defaults to undefined| ### Return type @@ -629,8 +629,8 @@ let team_id: number; //Include only sessions in which this team participated. Ta let series_id: number; //Include only sessions for series with this ID. (optional) (default to undefined) let race_week_num: number; //Include only sessions with this race week number. (optional) (default to undefined) let official_only: boolean; //If true, include only sessions earning championship points. Defaults to all. (optional) (default to undefined) -let event_types: Array; //Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) (default to undefined) -let category_ids: Array; //License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) (default to undefined) +let event_types: string; //Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) (default to undefined) +let category_ids: string; //License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) (default to undefined) const { status, data } = await apiInstance.getResultsSearchSeries( season_year, @@ -664,8 +664,8 @@ const { status, data } = await apiInstance.getResultsSearchSeries( | **series_id** | [**number**] | Include only sessions for series with this ID. | (optional) defaults to undefined| | **race_week_num** | [**number**] | Include only sessions with this race week number. | (optional) defaults to undefined| | **official_only** | [**boolean**] | If true, include only sessions earning championship points. Defaults to all. | (optional) defaults to undefined| -| **event_types** | **Array<number>** | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | (optional) defaults to undefined| -| **category_ids** | **Array<number>** | License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | (optional) defaults to undefined| +| **event_types** | [**string**] | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | (optional) defaults to undefined| +| **category_ids** | [**string**] | License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | (optional) defaults to undefined| ### Return type diff --git a/packages/api-client/src/client/docs/SeasonApi.md b/packages/api-client/src/client/docs/SeasonApi.md index 3e8bcf5..bb0c3ac 100644 --- a/packages/api-client/src/client/docs/SeasonApi.md +++ b/packages/api-client/src/client/docs/SeasonApi.md @@ -9,6 +9,8 @@ All URIs are relative to *https://members-ng.iracing.com* |[**getSeasonListDocs**](#getseasonlistdocs) | **GET** /data/doc/season/list | | |[**getSeasonRaceGuide**](#getseasonraceguide) | **GET** /data/season/race_guide | | |[**getSeasonRaceGuideDocs**](#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | | +|[**getSeasonSpectatorSubsessionIds**](#getseasonspectatorsubsessionids) | **GET** /data/season/spectator_subsessionids | | +|[**getSeasonSpectatorSubsessionIdsDetail**](#getseasonspectatorsubsessionidsdetail) | **GET** /data/season/spectator_subsessionids_detail | | |[**getSeasonSpectatorSubsessionIdsDetailDocs**](#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | | |[**getSeasonSpectatorSubsessionIdsDocs**](#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | | @@ -256,6 +258,115 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **getSeasonSpectatorSubsessionIds** +> IracingAPIResponse getSeasonSpectatorSubsessionIds() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +let event_types: Array; //Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) (default to undefined) + +const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIds( + event_types +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **event_types** | **Array<IracingEventType>** | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getSeasonSpectatorSubsessionIdsDetail** +> IracingAPIResponse getSeasonSpectatorSubsessionIdsDetail() + + +### Example + +```typescript +import { + SeasonApi, + Configuration +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new SeasonApi(configuration); + +let event_types: Array; //Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) (default to undefined) +let season_ids: Array; //Seasons to include in the search. Defaults to all. ?season_ids=513,937 (optional) (default to undefined) + +const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDetail( + event_types, + season_ids +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **event_types** | **Array<IracingEventType>** | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | (optional) defaults to undefined| +| **season_ids** | **Array<number>** | Seasons to include in the search. Defaults to all. ?season_ids=513,937 | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **getSeasonSpectatorSubsessionIdsDetailDocs** > IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDetailDocs() diff --git a/packages/api-router/src/routes/data/driver-stats.ts b/packages/api-router/src/routes/data/driver-stats.ts index be95fc7..2cccefd 100644 --- a/packages/api-router/src/routes/data/driver-stats.ts +++ b/packages/api-router/src/routes/data/driver-stats.ts @@ -6,10 +6,12 @@ export const category = createEndpoint( { method: "GET", requireHeaders: true, - query: IRacingDriverStatsByCategoryPathSchema, }, - async ({ context: { iracing }, query }) => { - const response = await iracing.driverStats.getDriverStatsByCategory(query); + async ({ context: { iracing }, params: queryParams }) => { + const response = await iracing.driverStats.getDriverStatsByCategory( + await IRacingDriverStatsByCategoryPathSchema.parseAsync(queryParams) + ); + return response.data; } ); diff --git a/packages/api-router/src/routes/data/index.ts b/packages/api-router/src/routes/data/index.ts index 01d58b5..a77466e 100644 --- a/packages/api-router/src/routes/data/index.ts +++ b/packages/api-router/src/routes/data/index.ts @@ -7,7 +7,7 @@ export * from "./hosted"; export * from "./league"; export * from "./lookup"; export * from "./member"; -// TODO: Results +export * from "./results"; export * from "./season"; export * from "./series"; export * from "./stats"; diff --git a/packages/api-router/src/routes/data/results.ts b/packages/api-router/src/routes/data/results.ts new file mode 100644 index 0000000..a118e2e --- /dev/null +++ b/packages/api-router/src/routes/data/results.ts @@ -0,0 +1,73 @@ +import { + IRacingResultsGetParametersSchema, + IRacingResultsEventLogParametersSchema, + IRacingResultsLapChartDataParametersSchema, + IRacingResultsLapDataParametersSchema, + IRacingResultsSearchHostedParametersSchema, + IRacingResultsSearchSeriesParametersSchema, + IRacingResultsSeasonResultsParametersSchema, +} from "@iracing-data/api-schema"; +import { createEndpoint } from "../utils"; + +export const getResults = createEndpoint( + "/data/results/get", + { method: "GET", query: IRacingResultsGetParametersSchema }, + async ({ context: { iracing }, query }) => { + const response = await iracing.results.getResults(query); + return response.data; + } +); + +export const eventLog = createEndpoint( + "/data/results/event_log", + { method: "GET", query: IRacingResultsEventLogParametersSchema }, + async ({ context: { iracing }, query }) => { + const response = await iracing.results.getResultsEventLog(query); + return response.data; + } +); + +export const lapChartData = createEndpoint( + "/data/results/lap_chart_data", + { method: "GET", query: IRacingResultsLapChartDataParametersSchema }, + async ({ context: { iracing }, query }) => { + const response = await iracing.results.getResultsLapChartData(query); + return response.data; + } +); + +export const lapData = createEndpoint( + "/data/results/lap_data", + { method: "GET", query: IRacingResultsLapDataParametersSchema }, + async ({ context: { iracing }, query }) => { + const response = await iracing.results.getResultsLapData(query); + return response.data; + } +); + +export const searchHosted = createEndpoint( + "/data/results/search_hosted", + { method: "GET", query: IRacingResultsSearchHostedParametersSchema }, + async ({ context: { iracing }, query }) => { + const response = await iracing.results.getResultsSearchHosted(query); + return response.data; + } +); + +export const searchSeries = createEndpoint( + "/data/results/search_series", + { method: "GET", query: IRacingResultsSearchSeriesParametersSchema }, + async ({ context: { iracing }, query }) => { + const response = await iracing.results.getResultsSearchSeries(query); + return response.data; + } +); + +export const seasonResults = createEndpoint( + "/data/results/season_results", + { method: "GET", query: IRacingResultsSeasonResultsParametersSchema }, + async ({ context: { iracing }, query }) => { + const response = await iracing.results.getResultsSeasonResults(query); + return response.data; + } +); diff --git a/packages/api-router/src/routes/data/season.ts b/packages/api-router/src/routes/data/season.ts index b84e37a..324aefe 100644 --- a/packages/api-router/src/routes/data/season.ts +++ b/packages/api-router/src/routes/data/season.ts @@ -1,6 +1,8 @@ import { IRacingSeasonListParametersSchema, IRacingSeasonRaceGuideParametersSchema, + IRacingSeasonSpectatorSubsessionidsParametersSchema, + IRacingSeasonSpectatorSubsessionidsDetailParametersSchema, } from "@iracing-data/api-schema"; import { createEndpoint } from "../utils"; @@ -28,5 +30,28 @@ export const raceGuide = createEndpoint( } ); -// TODO: Spectator subsessionIds -// TODO: Spectator subsessionIds detail +export const spectatorSubsessionIds = createEndpoint( + "/data/season/spectator_subsessionids", + { + method: "GET", + query: IRacingSeasonSpectatorSubsessionidsParametersSchema, + }, + async ({ context: { iracing }, query }) => { + const response = + await iracing.season.getSeasonSpectatorSubsessionIds(query); + return response.data; + } +); + +export const spectatorSubsessionIdsDetail = createEndpoint( + "/data/season/spectator_subsessionids_detail", + { + method: "GET", + query: IRacingSeasonSpectatorSubsessionidsDetailParametersSchema, + }, + async ({ context: { iracing }, query }) => { + const response = + await iracing.season.getSeasonSpectatorSubsessionIdsDetail(query); + return response.data; + } +); diff --git a/packages/api-schema/src/schema.ts b/packages/api-schema/src/schema.ts index 741360c..1c402b5 100644 --- a/packages/api-schema/src/schema.ts +++ b/packages/api-schema/src/schema.ts @@ -63,11 +63,17 @@ export const IRacingErrorResponseSchema = z id: "errorResponse", }); +// Primitives + export const IRacingCustomerIdSchema = z.coerce.number().meta({ description: "Numeric ID of a customer on iRacing.", id: "customerId", }); +export const CommaSeparatedNumberString = z.string().regex(/^\d+(?:,\d+)*$/, { + message: "Parameter must be a comma-separated list of numbers, e.g. '2,3,4'", +}); + export const IRacingEventTypePracticeSchema = z .literal(2) .meta({ description: "Practice" }); @@ -107,6 +113,10 @@ export const IRacingChartTypeSchema = z description: "iRacing Chart Type", }); +export const IRacingChartTypeParameterSchema = z.coerce + .number() + .pipe(IRacingChartTypeSchema); + export const IRacingCategorySchema = z .union([ z.literal("oval").meta({ description: "Oval discipline" }), @@ -124,6 +134,24 @@ export const IRacingCategorySchema = z id: "iracingCategory", }); +export const IRacingCategoryIdSchema = z + .union([ + z.literal(1).meta({ description: "Oval" }), + z.literal(2).meta({ description: "Road" }), + z.literal(3).meta({ description: "Dirt Oval" }), + z.literal(4).meta({ description: "Dirt Road" }), + z.literal(5).meta({ description: "Sports car" }), + z.literal(6).meta({ description: "Formula" }), + ]) + .meta({ + description: "Racing category ID.", + id: "iracingCategoryId", + }); + +export const IRacingCategoryIdParameterSchema = z.coerce + .number() + .pipe(IRacingCategoryIdSchema); + export const IRacingDivisionSchema = z .union([ z.literal(0).meta({ @@ -181,17 +209,17 @@ export const IRacingDriverStatsByCategoryPathSchema = z.object({ }); export const IRacingHostedCombinedSessionsParametersSchema = z.object({ - package_id: z.number().optional().meta({ + package_id: z.coerce.number().optional().meta({ description: "If set, return only sessions using this car or track package ID.", }), }); export const IRacingLeagueCustomerSessionsParametersSchema = z.object({ - mine: z.boolean().optional().meta({ + mine: z.coerce.boolean().optional().meta({ description: "If true, return only sessions created by this user.", }), - package_id: z.number().optional().meta({ + package_id: z.coerce.number().optional().meta({ description: "If set, return only sessions using this car or track package ID.", }), @@ -206,31 +234,31 @@ export const IRacingLeagueDirectoryParametersSchema = z.object({ .string() .optional() .meta({ description: "One or more tags, comma-separated." }), - restrict_to_member: z.boolean().optional().meta({ + restrict_to_member: z.coerce.boolean().optional().meta({ description: "If true include only leagues for which customer is a member.", }), - restrict_to_recruiting: z.boolean().optional().meta({ + restrict_to_recruiting: z.coerce.boolean().optional().meta({ description: "If true include only leagues which are recruiting.", }), - restrict_to_friends: z + restrict_to_friends: z.coerce .boolean() .optional() .meta({ description: "If true include only leagues owned by a friend." }), - restrict_to_watched: z.boolean().optional().meta({ + restrict_to_watched: z.coerce.boolean().optional().meta({ description: "If true include only leagues owned by a watched member.", }), - minimum_roster_count: z.number().optional().meta({ + minimum_roster_count: z.coerce.number().optional().meta({ description: "If set include leagues with at least this number of members.", }), - maximum_roster_count: z.number().optional().meta({ + maximum_roster_count: z.coerce.number().optional().meta({ description: "If set include leagues with no more than this number of members.", }), - lowerbound: z + lowerbound: z.coerce .number() .optional() .meta({ description: "First row of results to return. Defaults to 1." }), - upperbound: z.number().optional().meta({ + upperbound: z.coerce.number().optional().meta({ description: "Last row of results to return. Defaults to lowerbound + 39.", }), sort: z.string().optional().meta({ @@ -244,15 +272,15 @@ export const IRacingLeagueDirectoryParametersSchema = z.object({ }); export const IRacingLeagueGetParametersSchema = z.object({ - league_id: z.number(), - include_licenses: z.boolean().optional().meta({ + league_id: z.coerce.number(), + include_licenses: z.coerce.boolean().optional().meta({ description: "For faster responses, only request when necessary.", }), }); export const IRacingLeagueGetPointsSystemsParametersSchema = z.object({ - league_id: z.number(), - season_id: z.number().optional().meta({ + league_id: z.coerce.number(), + season_id: z.coerce.number().optional().meta({ description: "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.", }), @@ -263,37 +291,37 @@ export const IRacingLeagueMembershipParametersSchema = z.object({ description: "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.", }), - include_league: z.boolean().optional(), + include_league: z.coerce.boolean().optional(), }); export const IRacingLeagueRosterParametersSchema = z.object({ - league_id: z.number(), - include_licenses: z.boolean().optional().meta({ + league_id: z.coerce.number(), + include_licenses: z.coerce.boolean().optional().meta({ description: "For faster responses, only request when necessary.", }), }); export const IRacingLeagueSeasonsParametersSchema = z.object({ - league_id: z.number(), - retired: z.boolean().optional().meta({ + league_id: z.coerce.number(), + retired: z.coerce.boolean().optional().meta({ description: "If true include seasons which are no longer active.", }), }); export const IRacingLeagueSeasonStandingsParametersSchema = z.object({ - league_id: z.number(), - season_id: z.number(), - car_class_id: z.number().optional(), - car_id: z.number().optional().meta({ + league_id: z.coerce.number(), + season_id: z.coerce.number(), + car_class_id: z.coerce.number().optional(), + car_id: z.coerce.number().optional().meta({ description: "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.", }), }); export const IRacingLeagueSeasonSessionsParametersSchema = z.object({ - league_id: z.number(), - season_id: z.number(), - results_only: z.boolean().optional().meta({ + league_id: z.coerce.number(), + season_id: z.coerce.number(), + results_only: z.coerce.boolean().optional().meta({ description: "If true include only sessions for which results are available.", }), @@ -303,7 +331,7 @@ export const IRacingLookupDriversParametersSchema = z.object({ search_term: z .string() .meta({ description: "A cust_id or partial name for which to search." }), - league_id: z.number().optional().meta({ + league_id: z.coerce.number().optional().meta({ description: "Narrow the search to the roster of the given league.", }), }); @@ -318,24 +346,27 @@ export const IRacingMemberAwardInstancesParametersSchema = z.object({ cust_id: IRacingCustomerIdSchema.optional().meta({ description: "Defaults to the authenticated member.", }), - award_id: z.number(), + award_id: z.coerce.number(), }); export const IRacingMemberChartDataParametersSchema = z.object({ cust_id: IRacingCustomerIdSchema.optional().meta({ description: "Defaults to the authenticated member.", }), - category_id: z - .number() - .meta({ description: "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road" }), - chart_type: IRacingChartTypeSchema.meta({ + category_id: IRacingCategoryIdParameterSchema.meta({ + description: "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road", + }), + chart_type: IRacingChartTypeParameterSchema.meta({ description: "1 - iRating; 2 - TT Rating; 3 - License/SR", }), }); export const IRacingMemberGetParametersSchema = z.object({ - cust_ids: z.array(z.number()).meta({ description: "?cust_ids=2,3,4" }), - include_licenses: z.boolean().optional(), + cust_ids: CommaSeparatedNumberString.meta({ + description: + "Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4", + }), + include_licenses: z.coerce.boolean().optional(), }); export const IRacingMemberProfileParametersSchema = z.object({ @@ -345,34 +376,34 @@ export const IRacingMemberProfileParametersSchema = z.object({ }); export const IRacingResultsGetParametersSchema = z.object({ - subsession_id: z.number(), - include_licenses: z.boolean().optional(), + subsession_id: z.coerce.number(), + include_licenses: z.coerce.boolean().optional(), }); export const IRacingResultsEventLogParametersSchema = z.object({ - subsession_id: z.number(), - simsession_number: z.number().meta({ + subsession_id: z.coerce.number(), + simsession_number: z.coerce.number().meta({ description: "The main event is 0; the preceding event is -1, and so on.", }), }); export const IRacingResultsLapChartDataParametersSchema = z.object({ - subsession_id: z.number(), - simsession_number: z.number().meta({ + subsession_id: z.coerce.number(), + simsession_number: z.coerce.number().meta({ description: "The main event is 0; the preceding event is -1, and so on.", }), }); export const IRacingResultsLapDataParametersSchema = z.object({ - subsession_id: z.number(), - simsession_number: z.number().meta({ + subsession_id: z.coerce.number(), + simsession_number: z.coerce.number().meta({ description: "The main event is 0; the preceding event is -1, and so on.", }), cust_id: IRacingCustomerIdSchema.optional().meta({ description: "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.", }), - team_id: z + team_id: z.coerce .number() .optional() .meta({ description: "Required if the subsession was a team event." }), @@ -399,7 +430,7 @@ export const IRacingResultsSearchHostedParametersSchema = z.object({ description: "The participant's customer ID. Ignored if team_id is supplied.", }), - team_id: z.number().optional().meta({ + team_id: z.coerce.number().optional().meta({ description: "The team ID to search for. Takes priority over cust_id if both are supplied.", }), @@ -410,33 +441,33 @@ export const IRacingResultsSearchHostedParametersSchema = z.object({ .string() .optional() .meta({ description: "Part or all of the session's name." }), - league_id: z + league_id: z.coerce .number() .optional() .meta({ description: "Include only results for the league with this ID." }), - league_season_id: z.number().optional().meta({ + league_season_id: z.coerce.number().optional().meta({ description: "Include only results for the league season with this ID.", }), - car_id: z + car_id: z.coerce .number() .optional() .meta({ description: "One of the cars used by the session." }), - track_id: z + track_id: z.coerce .number() .optional() .meta({ description: "The ID of the track used by the session." }), - category_ids: z.array(z.number()).optional().meta({ + category_ids: CommaSeparatedNumberString.optional().meta({ description: "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", }), }); export const IRacingResultsSearchSeriesParametersSchema = z.object({ - season_year: z + season_year: z.coerce .number() .optional() .meta({ description: "Required when using season_quarter." }), - season_quarter: z + season_quarter: z.coerce .number() .optional() .meta({ description: "Required when using season_year." }), @@ -464,43 +495,43 @@ export const IRacingResultsSearchSeriesParametersSchema = z.object({ description: "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", }), - series_id: z + series_id: z.coerce .number() .optional() .meta({ description: "Include only sessions for series with this ID." }), - race_week_num: z + race_week_num: z.coerce .number() .optional() .meta({ description: "Include only sessions with this race week number." }), - official_only: z.boolean().optional().meta({ + official_only: z.coerce.boolean().optional().meta({ description: "If true, include only sessions earning championship points. Defaults to all.", }), - event_types: z.array(z.number()).optional().meta({ + event_types: CommaSeparatedNumberString.optional().meta({ description: "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", }), - category_ids: z.array(z.number()).optional().meta({ + category_ids: CommaSeparatedNumberString.optional().meta({ description: "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", }), }); export const IRacingResultsSeasonResultsParametersSchema = z.object({ - season_id: z.number(), + season_id: z.coerce.number(), event_type: IRacingEventTypeSchema.optional().meta({ description: "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race", }), - race_week_num: z + race_week_num: z.coerce .number() .optional() .meta({ description: "The first race week of a season is 0." }), }); export const IRacingSeasonListParametersSchema = z.object({ - season_year: z.number(), - season_quarter: z.number(), + season_year: z.coerce.number(), + season_quarter: z.coerce.number(), }); export const IRacingSeasonRaceGuideParametersSchema = z.object({ @@ -508,7 +539,7 @@ export const IRacingSeasonRaceGuideParametersSchema = z.object({ description: "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.", }), - include_end_after_from: z.boolean().optional().meta({ + include_end_after_from: z.coerce.boolean().optional().meta({ description: "Include sessions which start before 'from' but end after.", }), }); @@ -533,36 +564,36 @@ export const IRacingSeasonSpectatorSubsessionidsDetailParametersSchema = }); export const IRacingSeriesPastSeasonsParametersSchema = z.object({ - series_id: z.number(), + series_id: z.coerce.number(), }); export const IRacingSeriesSeasonsParametersSchema = z.object({ - include_series: z.boolean().optional(), - season_year: z.number().optional().meta({ + include_series: z.coerce.boolean().optional(), + season_year: z.coerce.number().optional().meta({ description: "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", }), - season_quarter: z.number().optional().meta({ + season_quarter: z.coerce.number().optional().meta({ description: "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", }), }); export const IRacingSeriesSeasonListParametersSchema = z.object({ - include_series: z.boolean().optional(), - season_year: z.number().optional(), - season_quarter: z.number().optional(), + include_series: z.coerce.boolean().optional(), + season_year: z.coerce.number().optional(), + season_quarter: z.coerce.number().optional(), }); export const IRacingSeriesSeasonScheduleParametersSchema = z.object({ - season_id: z.number(), + season_id: z.coerce.number(), }); export const IRacingStatsMemberBestsParametersSchema = z.object({ cust_id: IRacingCustomerIdSchema.optional().meta({ description: "Defaults to the authenticated member.", }), - car_id: z.number().optional().meta({ + car_id: z.coerce.number().optional().meta({ description: "First call should exclude car_id; use cars_driven list in return for subsequent calls.", }), @@ -575,7 +606,7 @@ export const IRacingStatsMemberCareerParametersSchema = z.object({ }); export const IRacingStatsMemberDivisionParametersSchema = z.object({ - season_id: z.number(), + season_id: z.coerce.number(), event_type: z .union([IRacingEventTypeTimeTrialSchema, IRacingEventTypeRaceSchema]) .meta({ @@ -595,7 +626,7 @@ export const IRacingStatsMemberRecapParametersSchema = z.object({ description: "Season year; if not supplied the current calendar year (UTC) is used.", }), - season: z.number().optional().meta({ + season: z.coerce.number().optional().meta({ description: "Season (quarter) within the year; if not supplied the recap will be for the entire year.", }), @@ -620,10 +651,10 @@ export const IRacingStatsMemberYearlyParametersSchema = z.object({ }); export const IRacingStatsSeasonDriverStandingsParametersSchema = z.object({ - season_id: z.number(), - car_class_id: z.number(), + season_id: z.coerce.number(), + car_class_id: z.coerce.number(), division: IRacingDivisionSchema.optional(), - race_week_num: z + race_week_num: z.coerce .number() .optional() .meta({ description: "The first race week of a season is 0." }), @@ -631,10 +662,10 @@ export const IRacingStatsSeasonDriverStandingsParametersSchema = z.object({ export const IRacingStatsSeasonSupersessionStandingsParametersSchema = z.object( { - season_id: z.number(), - car_class_id: z.number(), + season_id: z.coerce.number(), + car_class_id: z.coerce.number(), division: IRacingDivisionSchema.optional(), - race_week_num: z + race_week_num: z.coerce .number() .optional() .meta({ description: "The first race week of a season is 0." }), @@ -642,71 +673,71 @@ export const IRacingStatsSeasonSupersessionStandingsParametersSchema = z.object( ); export const IRacingStatsSeasonTeamStandingsParametersSchema = z.object({ - season_id: z.number(), - car_class_id: z.number(), - race_week_num: z + season_id: z.coerce.number(), + car_class_id: z.coerce.number(), + race_week_num: z.coerce .number() .optional() .meta({ description: "The first race week of a season is 0." }), }); export const IRacingStatsSeasonTTStandingsParametersSchema = z.object({ - season_id: z.number(), - car_class_id: z.number(), + season_id: z.coerce.number(), + car_class_id: z.coerce.number(), division: IRacingDivisionSchema.optional(), - race_week_num: z + race_week_num: z.coerce .number() .optional() .meta({ description: "The first race week of a season is 0." }), }); export const IRacingStatsSeasonTTResultsParametersSchema = z.object({ - season_id: z.number(), - car_class_id: z.number(), - race_week_num: z + season_id: z.coerce.number(), + car_class_id: z.coerce.number(), + race_week_num: z.coerce .number() .meta({ description: "The first race week of a season is 0." }), division: IRacingDivisionSchema.optional(), }); export const IRacingStatsSeasonQualifyResultsParametersSchema = z.object({ - season_id: z.number(), - car_class_id: z.number(), - race_week_num: z + season_id: z.coerce.number(), + car_class_id: z.coerce.number(), + race_week_num: z.coerce .number() .meta({ description: "The first race week of a season is 0." }), division: IRacingDivisionSchema.optional(), }); export const IRacingStatsWorldRecordsParametersSchema = z.object({ - car_id: z.number(), - track_id: z.number(), - season_year: z + car_id: z.coerce.number(), + track_id: z.coerce.number(), + season_year: z.coerce .number() .optional() .meta({ description: "Limit best times to a given year." }), - season_quarter: z.number().optional().meta({ + season_quarter: z.coerce.number().optional().meta({ description: "Limit best times to a given quarter; only applicable when year is used.", }), }); export const IRacingTeamGetParametersSchema = z.object({ - team_id: z.number(), - include_licenses: z.boolean().optional().meta({ + team_id: z.coerce.number(), + include_licenses: z.coerce.boolean().optional().meta({ description: "For faster responses, only request when necessary.", }), }); export const IRacingTimeAttackMemberSeasonResultsParametersSchema = z.object({ - ta_comp_season_id: z.number(), + ta_comp_season_id: z.coerce.number(), }); export const IRacingServiceMethodParametersDocsResponseSchema = z .object({ type: z.string(), note: z.string().optional(), - required: z.boolean().optional(), + required: z.coerce.boolean().optional(), }) .meta({ description: "An iRacing API Service Method Parameters object.", @@ -720,7 +751,7 @@ export const IRacingServiceMethodDocsResponseSchema = z z.string(), IRacingServiceMethodParametersDocsResponseSchema ), - expirationSeconds: z.number().optional(), + expirationSeconds: z.coerce.number().optional(), }) .meta({ description: "An iRacing API Service Method object.", diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index c3c9517..66ebbea 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -33,6 +33,8 @@ import { IRacingResultsSeasonResultsParametersSchema, IRacingSeasonListParametersSchema, IRacingSeasonRaceGuideParametersSchema, + IRacingSeasonSpectatorSubsessionidsDetailParametersSchema, + IRacingSeasonSpectatorSubsessionidsParametersSchema, IRacingSeriesPastSeasonsParametersSchema, IRacingSeriesSeasonListParametersSchema, IRacingSeriesSeasonScheduleParametersSchema, @@ -1746,6 +1748,42 @@ export async function generateOpenAPISpec({ }, }, }, + "/data/season/spectator_subsessionids": { + get: { + operationId: "getSeasonSpectatorSubsessionIds", + tags: ["season"], + requestParams: { + query: IRacingSeasonSpectatorSubsessionidsParametersSchema, + }, + externalDocs: { + url: "/data/doc/season/spectator_subsessionids", + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, + "/data/season/spectator_subsessionids_detail": { + get: { + operationId: "getSeasonSpectatorSubsessionIdsDetail", + tags: ["season"], + requestParams: { + query: IRacingSeasonSpectatorSubsessionidsDetailParametersSchema, + }, + externalDocs: { + url: "/data/doc/season/spectator_subsessionids_detail", + }, + responses: { + 200: { $ref: "#/components/responses/Success" }, + 429: { $ref: "#/components/responses/RateLimited" }, + 401: { $ref: "#/components/responses/Unauthorized" }, + 503: { $ref: "#/components/responses/Maintenance" }, + }, + }, + }, "/data/series/assets": { get: { operationId: "getSeriesAssets", From 177e6355a950e9c72967fae12206e0ed5ce6fd0d Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 14:35:24 -0500 Subject: [PATCH 19/28] Break schema file up --- packages/api-schema/README.md | 9 + packages/api-schema/src/schema/index.ts | 3 + .../src/{schema.ts => schema/parameters.ts} | 302 +----------------- packages/api-schema/src/schema/primitives.ts | 213 ++++++++++++ packages/api-schema/src/schema/responses.ts | 98 ++++++ 5 files changed, 334 insertions(+), 291 deletions(-) create mode 100644 packages/api-schema/README.md create mode 100644 packages/api-schema/src/schema/index.ts rename packages/api-schema/src/{schema.ts => schema/parameters.ts} (74%) create mode 100644 packages/api-schema/src/schema/primitives.ts create mode 100644 packages/api-schema/src/schema/responses.ts diff --git a/packages/api-schema/README.md b/packages/api-schema/README.md new file mode 100644 index 0000000..c5e39aa --- /dev/null +++ b/packages/api-schema/README.md @@ -0,0 +1,9 @@ +# @iracing-data/api-schema + +## Installation + +## Usage + +## TODO: + +- [ ] Get types for all responses (after we follow the link from the default API response) diff --git a/packages/api-schema/src/schema/index.ts b/packages/api-schema/src/schema/index.ts new file mode 100644 index 0000000..1a607af --- /dev/null +++ b/packages/api-schema/src/schema/index.ts @@ -0,0 +1,3 @@ +export * from "./parameters"; +export * from "./primitives"; +export * from "./responses"; diff --git a/packages/api-schema/src/schema.ts b/packages/api-schema/src/schema/parameters.ts similarity index 74% rename from packages/api-schema/src/schema.ts rename to packages/api-schema/src/schema/parameters.ts index 1c402b5..ab451fc 100644 --- a/packages/api-schema/src/schema.ts +++ b/packages/api-schema/src/schema/parameters.ts @@ -1,208 +1,15 @@ import { z } from "zod"; - -/** - * `/data` API schema - */ - -export const IRacingAccessTokenSchema = z.jwt().meta({ - description: "JWT ID Token from iRacing OAuth Service", - id: "iracingAccessToken", -}); - -export const IRacingRateLimitLimitHeaderKey = "x-ratelimit-limit"; -export const IRacingRateLimitLimitHeaderSchema = z.number().meta({ - title: "Rate limit limit", - description: "The current total rate limit.", - header: { - id: IRacingRateLimitLimitHeaderKey, - }, -}); - -export const IRacingRateLimitRemainingHeaderKey = "x-ratelimit-remaining"; -export const IRacingRateLimitRemainingHeaderSchema = z.number().meta({ - title: "Rate limit remaining", - description: "How much of the rate limit you have remaining.", - header: { - id: IRacingRateLimitRemainingHeaderKey, - }, -}); - -export const IRacingRateLimitResetHeaderKey = "x-ratelimit-reset"; -export const IRacingRateLimitResetHeaderSchema = z - .codec(z.int().min(0), z.date(), { - decode: (millis) => new Date(millis), - encode: (date) => date.getTime(), - }) - .meta({ - title: "Rate limit reset", - description: "When the rate limit will reset in epoch timestamp.", - header: { - id: IRacingRateLimitResetHeaderKey, - }, - }); - -export const IRacingRateLimitHeadersSchema = z - .object({ - [IRacingRateLimitLimitHeaderKey]: IRacingRateLimitLimitHeaderSchema, - [IRacingRateLimitRemainingHeaderKey]: IRacingRateLimitRemainingHeaderSchema, - [IRacingRateLimitResetHeaderKey]: IRacingRateLimitResetHeaderSchema, - }) - .meta({ - title: "Rate limit headers", - description: - "Headers included with every request, indicating current rate limit status for the requesting session.", - }); - -export const IRacingErrorResponseSchema = z - .object({ - error: z.string(), - message: z.string().optional(), - note: z.string().optional(), - }) - .meta({ - id: "errorResponse", - }); - -// Primitives - -export const IRacingCustomerIdSchema = z.coerce.number().meta({ - description: "Numeric ID of a customer on iRacing.", - id: "customerId", -}); - -export const CommaSeparatedNumberString = z.string().regex(/^\d+(?:,\d+)*$/, { - message: "Parameter must be a comma-separated list of numbers, e.g. '2,3,4'", -}); - -export const IRacingEventTypePracticeSchema = z - .literal(2) - .meta({ description: "Practice" }); - -export const IRacingEventTypeQualifyingSchema = z - .literal(3) - .meta({ description: "Qualifying" }); - -export const IRacingEventTypeTimeTrialSchema = z - .literal(4) - .meta({ description: "Time trial" }); - -export const IRacingEventTypeRaceSchema = z - .literal(5) - .meta({ description: "Race" }); - -export const IRacingEventTypeSchema = z - .union([ - IRacingEventTypePracticeSchema, - IRacingEventTypeQualifyingSchema, - IRacingEventTypeTimeTrialSchema, - IRacingEventTypeRaceSchema, - ]) - .meta({ - id: "iracingEventType", - description: "iRacing Event Type", - }); - -export const IRacingChartTypeSchema = z - .union([ - z.literal(1).meta({ description: "iRating" }), - z.literal(2).meta({ description: "Time trial rating" }), - z.literal(3).meta({ description: "License rating" }), - ]) - .meta({ - id: "iracingChartType", - description: "iRacing Chart Type", - }); - -export const IRacingChartTypeParameterSchema = z.coerce - .number() - .pipe(IRacingChartTypeSchema); - -export const IRacingCategorySchema = z - .union([ - z.literal("oval").meta({ description: "Oval discipline" }), - z.literal("road").meta({ - description: - "Road discipline. Legacy, use `sports_car` or `formula_car` instead.", - }), - z.literal("dirt_road").meta({ description: "Dirt road discipline." }), - z.literal("dirt_oval").meta({ description: "Dirt oval discipline." }), - z.literal("sports_car").meta({ description: "Sports car discipline." }), - z.literal("formula_car").meta({ description: "Formula car discipline." }), - ]) - .meta({ - description: "Racing category.", - id: "iracingCategory", - }); - -export const IRacingCategoryIdSchema = z - .union([ - z.literal(1).meta({ description: "Oval" }), - z.literal(2).meta({ description: "Road" }), - z.literal(3).meta({ description: "Dirt Oval" }), - z.literal(4).meta({ description: "Dirt Road" }), - z.literal(5).meta({ description: "Sports car" }), - z.literal(6).meta({ description: "Formula" }), - ]) - .meta({ - description: "Racing category ID.", - id: "iracingCategoryId", - }); - -export const IRacingCategoryIdParameterSchema = z.coerce - .number() - .pipe(IRacingCategoryIdSchema); - -export const IRacingDivisionSchema = z - .union([ - z.literal(0).meta({ - description: "Division 1", - }), - z.literal(1).meta({ - description: "Division 2", - }), - z.literal(2).meta({ - description: "Division 3", - }), - z.literal(3).meta({ - description: "Division 4", - }), - z.literal(4).meta({ - description: "Division 5", - }), - z.literal(5).meta({ - description: "Division 6", - }), - z.literal(6).meta({ - description: "Division 7", - }), - z.literal(7).meta({ - description: "Division 8", - }), - z.literal(8).meta({ - description: "Division 9", - }), - z.literal(9).meta({ - description: "Division 10", - }), - z.literal(10).meta({ - description: "Rookie", - }), - ]) - .meta({ - description: - "iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.", - id: "iracingDivision", - }); - -export const IRacingAPIResponseSchema = z - .object({ - link: z.url().meta({ description: "A link to the cached data" }), - expires: z.iso.datetime(), - }) - .meta({ - description: "Response from iRacing `/data` API.", - id: "iracingAPIResponse", - }); +import { + IRacingCategorySchema, + IRacingCustomerIdSchema, + IRacingCategoryIdParameterSchema, + IRacingChartTypeParameterSchema, + CommaSeparatedNumberString, + IRacingEventTypeSchema, + IRacingEventTypeTimeTrialSchema, + IRacingEventTypeRaceSchema, + IRacingDivisionSchema, +} from "./primitives"; export const IRacingDriverStatsByCategoryPathSchema = z.object({ category: IRacingCategorySchema, @@ -733,87 +540,12 @@ export const IRacingTimeAttackMemberSeasonResultsParametersSchema = z.object({ ta_comp_season_id: z.coerce.number(), }); -export const IRacingServiceMethodParametersDocsResponseSchema = z - .object({ - type: z.string(), - note: z.string().optional(), - required: z.coerce.boolean().optional(), - }) - .meta({ - description: "An iRacing API Service Method Parameters object.", - id: "iracingServiceMethodParametersDocs", - }); - -export const IRacingServiceMethodDocsResponseSchema = z - .object({ - link: z.url(), - parameters: z.record( - z.string(), - IRacingServiceMethodParametersDocsResponseSchema - ), - expirationSeconds: z.coerce.number().optional(), - }) - .meta({ - description: "An iRacing API Service Method object.", - id: "iracingServiceMethodDocs", - }); - -export const IRacingServiceDocsResponseSchema = z - .record(z.string(), IRacingServiceMethodDocsResponseSchema) - .meta({ - description: - "An index of service methods available for the requested service.", - id: "iracingServiceDocs", - }); - -export const IRacingServicesDocsResponseSchema = z - .record(z.string(), IRacingServiceDocsResponseSchema) - .meta({ - description: "An index of available services on the iRacing API.", - id: "iracingServicesDocs", - }); - /** * Types */ - -export type IRacingAccessToken = z.infer; -export type IRacingRateLimitLimitHeader = z.infer< - typeof IRacingRateLimitLimitHeaderSchema ->; -export type IRacingRateLimitRemainingHeader = z.infer< - typeof IRacingRateLimitRemainingHeaderSchema ->; -export type IRacingRateLimitResetHeader = z.infer< - typeof IRacingRateLimitResetHeaderSchema ->; -export type IRacingRateLimitHeaders = z.infer< - typeof IRacingRateLimitHeadersSchema ->; -export type IRacingCustomerId = z.infer; -export type IRacingCategory = z.infer; -export type IRacingDivision = z.infer; -export type IRacingAPIResponse = z.infer; export type IRacingDriverStatsByCategoryPath = z.infer< typeof IRacingDriverStatsByCategoryPathSchema >; - -export type IRacingErrorResponse = z.infer; - -export type IRacingEventTypePractice = z.infer< - typeof IRacingEventTypePracticeSchema ->; -export type IRacingEventTypeQualifying = z.infer< - typeof IRacingEventTypeQualifyingSchema ->; -export type IRacingEventTypeTimeTrial = z.infer< - typeof IRacingEventTypeTimeTrialSchema ->; -export type IRacingEventTypeRace = z.infer; -export type IRacingEventType = z.infer; - -export type IRacingChartType = z.infer; - export type IRacingHostedCombinedSessionsParameters = z.infer< typeof IRacingHostedCombinedSessionsParametersSchema >; @@ -962,15 +694,3 @@ export type IRacingTeamGetParameters = z.infer< export type IRacingTimeAttackMemberSeasonResultsParameters = z.infer< typeof IRacingTimeAttackMemberSeasonResultsParametersSchema >; -export type IRacingServiceMethodParametersDocsResponse = z.infer< - typeof IRacingServiceMethodParametersDocsResponseSchema ->; -export type IRacingServiceMethodDocsResponse = z.infer< - typeof IRacingServiceMethodDocsResponseSchema ->; -export type IRacingServiceDocsResponse = z.infer< - typeof IRacingServiceDocsResponseSchema ->; -export type IRacingServicesDocsResponse = z.infer< - typeof IRacingServicesDocsResponseSchema ->; diff --git a/packages/api-schema/src/schema/primitives.ts b/packages/api-schema/src/schema/primitives.ts new file mode 100644 index 0000000..4037bd9 --- /dev/null +++ b/packages/api-schema/src/schema/primitives.ts @@ -0,0 +1,213 @@ +import { z } from "zod"; + +export const IRacingAccessTokenSchema = z.jwt().meta({ + description: "JWT ID Token from iRacing OAuth Service", + id: "iracingAccessToken", +}); + +export const IRacingRateLimitLimitHeaderKey = "x-ratelimit-limit"; +export const IRacingRateLimitLimitHeaderSchema = z.number().meta({ + title: "Rate limit limit", + description: "The current total rate limit.", + header: { + id: IRacingRateLimitLimitHeaderKey, + }, +}); + +export const IRacingRateLimitRemainingHeaderKey = "x-ratelimit-remaining"; +export const IRacingRateLimitRemainingHeaderSchema = z.number().meta({ + title: "Rate limit remaining", + description: "How much of the rate limit you have remaining.", + header: { + id: IRacingRateLimitRemainingHeaderKey, + }, +}); + +export const IRacingRateLimitResetHeaderKey = "x-ratelimit-reset"; +export const IRacingRateLimitResetHeaderSchema = z + .codec(z.int().min(0), z.date(), { + decode: (millis) => new Date(millis), + encode: (date) => date.getTime(), + }) + .meta({ + title: "Rate limit reset", + description: "When the rate limit will reset in epoch timestamp.", + header: { + id: IRacingRateLimitResetHeaderKey, + }, + }); + +export const IRacingRateLimitHeadersSchema = z + .object({ + [IRacingRateLimitLimitHeaderKey]: IRacingRateLimitLimitHeaderSchema, + [IRacingRateLimitRemainingHeaderKey]: IRacingRateLimitRemainingHeaderSchema, + [IRacingRateLimitResetHeaderKey]: IRacingRateLimitResetHeaderSchema, + }) + .meta({ + title: "Rate limit headers", + description: + "Headers included with every request, indicating current rate limit status for the requesting session.", + }); + +export const IRacingCustomerIdSchema = z.coerce.number().meta({ + description: "Numeric ID of a customer on iRacing.", + id: "customerId", +}); + +export const CommaSeparatedNumberString = z.string().regex(/^\d+(?:,\d+)*$/, { + message: "Parameter must be a comma-separated list of numbers, e.g. '2,3,4'", +}); + +export const IRacingEventTypePracticeSchema = z + .literal(2) + .meta({ description: "Practice" }); + +export const IRacingEventTypeQualifyingSchema = z + .literal(3) + .meta({ description: "Qualifying" }); + +export const IRacingEventTypeTimeTrialSchema = z + .literal(4) + .meta({ description: "Time trial" }); + +export const IRacingEventTypeRaceSchema = z + .literal(5) + .meta({ description: "Race" }); + +export const IRacingEventTypeSchema = z + .union([ + IRacingEventTypePracticeSchema, + IRacingEventTypeQualifyingSchema, + IRacingEventTypeTimeTrialSchema, + IRacingEventTypeRaceSchema, + ]) + .meta({ + id: "iracingEventType", + description: "iRacing Event Type", + }); + +export const IRacingChartTypeSchema = z + .union([ + z.literal(1).meta({ description: "iRating" }), + z.literal(2).meta({ description: "Time trial rating" }), + z.literal(3).meta({ description: "License rating" }), + ]) + .meta({ + id: "iracingChartType", + description: "iRacing Chart Type", + }); + +export const IRacingChartTypeParameterSchema = z.coerce + .number() + .pipe(IRacingChartTypeSchema); + +export const IRacingCategorySchema = z + .union([ + z.literal("oval").meta({ description: "Oval discipline" }), + z.literal("road").meta({ + description: + "Road discipline. Legacy, use `sports_car` or `formula_car` instead.", + }), + z.literal("dirt_road").meta({ description: "Dirt road discipline." }), + z.literal("dirt_oval").meta({ description: "Dirt oval discipline." }), + z.literal("sports_car").meta({ description: "Sports car discipline." }), + z.literal("formula_car").meta({ description: "Formula car discipline." }), + ]) + .meta({ + description: "Racing category.", + id: "iracingCategory", + }); + +export const IRacingCategoryIdSchema = z + .union([ + z.literal(1).meta({ description: "Oval" }), + z.literal(2).meta({ description: "Road" }), + z.literal(3).meta({ description: "Dirt Oval" }), + z.literal(4).meta({ description: "Dirt Road" }), + z.literal(5).meta({ description: "Sports car" }), + z.literal(6).meta({ description: "Formula" }), + ]) + .meta({ + description: "Racing category ID.", + id: "iracingCategoryId", + }); + +export const IRacingCategoryIdParameterSchema = z.coerce + .number() + .pipe(IRacingCategoryIdSchema); + +export const IRacingDivisionSchema = z + .union([ + z.literal(0).meta({ + description: "Division 1", + }), + z.literal(1).meta({ + description: "Division 2", + }), + z.literal(2).meta({ + description: "Division 3", + }), + z.literal(3).meta({ + description: "Division 4", + }), + z.literal(4).meta({ + description: "Division 5", + }), + z.literal(5).meta({ + description: "Division 6", + }), + z.literal(6).meta({ + description: "Division 7", + }), + z.literal(7).meta({ + description: "Division 8", + }), + z.literal(8).meta({ + description: "Division 9", + }), + z.literal(9).meta({ + description: "Division 10", + }), + z.literal(10).meta({ + description: "Rookie", + }), + ]) + .meta({ + description: + "iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.", + id: "iracingDivision", + }); + +/** + * Types + */ + +export type IRacingAccessToken = z.infer; +export type IRacingRateLimitLimitHeader = z.infer< + typeof IRacingRateLimitLimitHeaderSchema +>; +export type IRacingRateLimitRemainingHeader = z.infer< + typeof IRacingRateLimitRemainingHeaderSchema +>; +export type IRacingRateLimitResetHeader = z.infer< + typeof IRacingRateLimitResetHeaderSchema +>; +export type IRacingRateLimitHeaders = z.infer< + typeof IRacingRateLimitHeadersSchema +>; +export type IRacingCustomerId = z.infer; +export type IRacingCategory = z.infer; +export type IRacingDivision = z.infer; +export type IRacingEventTypePractice = z.infer< + typeof IRacingEventTypePracticeSchema +>; +export type IRacingEventTypeQualifying = z.infer< + typeof IRacingEventTypeQualifyingSchema +>; +export type IRacingEventTypeTimeTrial = z.infer< + typeof IRacingEventTypeTimeTrialSchema +>; +export type IRacingEventTypeRace = z.infer; +export type IRacingEventType = z.infer; + +export type IRacingChartType = z.infer; diff --git a/packages/api-schema/src/schema/responses.ts b/packages/api-schema/src/schema/responses.ts new file mode 100644 index 0000000..892f41e --- /dev/null +++ b/packages/api-schema/src/schema/responses.ts @@ -0,0 +1,98 @@ +import { z } from "zod"; + +export const IRacingErrorResponseSchema = z + .object({ + error: z.string(), + message: z.string().optional(), + note: z.string().optional(), + }) + .meta({ + id: "errorResponse", + }); + +export const IRacingAPIResponseSchema = z + .object({ + link: z.url().meta({ description: "A link to the cached data" }), + expires: z.iso.datetime(), + }) + .meta({ + description: "Response from iRacing `/data` API.", + id: "iracingAPIResponse", + }); + +export const IRacingServiceMethodParametersDocsResponseSchema = z + .object({ + type: z.string(), + note: z.string().optional(), + required: z.coerce.boolean().optional(), + }) + .meta({ + description: "An iRacing API Service Method Parameters object.", + id: "iracingServiceMethodParametersDocs", + }); + +export const IRacingServiceMethodDocsResponseSchema = z + .object({ + link: z.url(), + parameters: z.record( + z.string(), + IRacingServiceMethodParametersDocsResponseSchema + ), + expirationSeconds: z.coerce.number().optional(), + }) + .meta({ + description: "An iRacing API Service Method object.", + id: "iracingServiceMethodDocs", + }); + +export const IRacingServiceDocsResponseSchema = z + .record(z.string(), IRacingServiceMethodDocsResponseSchema) + .meta({ + description: + "An index of service methods available for the requested service.", + id: "iracingServiceDocs", + }); + +export const IRacingServicesDocsResponseSchema = z + .record(z.string(), IRacingServiceDocsResponseSchema) + .meta({ + description: "An index of available services on the iRacing API.", + id: "iracingServicesDocs", + }); + +/** + * Route link responses. + * These are provided as a convenience and are non-exhaustive. + */ + +export const IRacingGetCarAssetsResponseSchema = z.record( + z.number(), + z.unknown() +); + +export const IRacingGetCarResponseSchema = z.array(z.unknown()); + +/** + * Types + */ + +export type IRacingErrorResponse = z.infer; +export type IRacingAPIResponse = z.infer; + +export type IRacingServiceMethodParametersDocsResponse = z.infer< + typeof IRacingServiceMethodParametersDocsResponseSchema +>; +export type IRacingServiceMethodDocsResponse = z.infer< + typeof IRacingServiceMethodDocsResponseSchema +>; +export type IRacingServiceDocsResponse = z.infer< + typeof IRacingServiceDocsResponseSchema +>; +export type IRacingServicesDocsResponse = z.infer< + typeof IRacingServicesDocsResponseSchema +>; + +export type IRacingGetCarAssetsResponse = z.infer< + typeof IRacingGetCarAssetsResponseSchema +>; +export type IRacingGetCarResponse = z.infer; From 62bff3839cb14be75f615710e03673af6c7383ab Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 14:59:27 -0500 Subject: [PATCH 20/28] Add POST /auth --- packages/api-client/openapi/openapi.json | 36 ++++++ .../src/client/.openapi-generator/FILES | 2 + packages/api-client/src/client/README.md | 2 + packages/api-client/src/client/api.ts | 112 ++++++++++++++++++ .../api-client/src/client/docs/AuthApi.md | 54 +++++++++ .../src/client/docs/PostAuthRequest.md | 22 ++++ packages/api-schema/src/schema/parameters.ts | 5 + .../api-schema-to-openapi/src/index.ts | 19 +++ pnpm-lock.yaml | 58 +++------ 9 files changed, 270 insertions(+), 40 deletions(-) create mode 100644 packages/api-client/src/client/docs/AuthApi.md create mode 100644 packages/api-client/src/client/docs/PostAuthRequest.md diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json index cfcf6ac..faa2eab 100644 --- a/packages/api-client/openapi/openapi.json +++ b/packages/api-client/openapi/openapi.json @@ -19,6 +19,10 @@ } ], "tags": [ + { + "name": "auth", + "description": "Auth endpoint." + }, { "name": "doc", "description": "A documentation endpoint." @@ -85,6 +89,38 @@ } ], "paths": { + "/auth": { + "post": { + "operationId": "postAuth", + "tags": [ + "auth" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email", + "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" + }, + "password": { + "type": "string" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + }, + "responses": {} + } + }, "/data/doc": { "get": { "operationId": "getDocs", diff --git a/packages/api-client/src/client/.openapi-generator/FILES b/packages/api-client/src/client/.openapi-generator/FILES index 65c859b..76b0144 100644 --- a/packages/api-client/src/client/.openapi-generator/FILES +++ b/packages/api-client/src/client/.openapi-generator/FILES @@ -5,6 +5,7 @@ api.ts base.ts common.ts configuration.ts +docs/AuthApi.md docs/CarApi.md docs/CarclassApi.md docs/ConstantsApi.md @@ -21,6 +22,7 @@ docs/IracingServiceMethodParametersDocs.md docs/LeagueApi.md docs/LookupApi.md docs/MemberApi.md +docs/PostAuthRequest.md docs/ResultsApi.md docs/SeasonApi.md docs/SeriesApi.md diff --git a/packages/api-client/src/client/README.md b/packages/api-client/src/client/README.md index 2c7fcc1..d87f4b8 100644 --- a/packages/api-client/src/client/README.md +++ b/packages/api-client/src/client/README.md @@ -51,6 +51,7 @@ All URIs are relative to *https://members-ng.iracing.com* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*AuthApi* | [**postAuth**](docs/AuthApi.md#postauth) | **POST** /auth | *CarApi* | [**getCar**](docs/CarApi.md#getcar) | **GET** /data/car/get | *CarApi* | [**getCarAssets**](docs/CarApi.md#getcarassets) | **GET** /data/car/assets | *CarApi* | [**getCarAssetsDocs**](docs/CarApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | @@ -294,6 +295,7 @@ Class | Method | HTTP request | Description - [IracingEventType](docs/IracingEventType.md) - [IracingServiceMethodDocs](docs/IracingServiceMethodDocs.md) - [IracingServiceMethodParametersDocs](docs/IracingServiceMethodParametersDocs.md) + - [PostAuthRequest](docs/PostAuthRequest.md) diff --git a/packages/api-client/src/client/api.ts b/packages/api-client/src/client/api.ts index a072c0d..76c2639 100644 --- a/packages/api-client/src/client/api.ts +++ b/packages/api-client/src/client/api.ts @@ -168,6 +168,118 @@ export interface IracingServiceMethodParametersDocs { 'note'?: string; 'required'?: boolean; } +export interface PostAuthRequest { + 'email': string; + 'password': string; +} + +/** + * AuthApi - axios parameter creator + */ +export const AuthApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {PostAuthRequest} [post_auth_request] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + postAuth: async (post_auth_request?: PostAuthRequest, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/auth`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + localVarHeaderParameter['Content-Type'] = 'application/json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + localVarRequestOptions.data = serializeDataIfNeeded(post_auth_request, localVarRequestOptions, configuration) + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * AuthApi - functional programming interface + */ +export const AuthApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = AuthApiAxiosParamCreator(configuration) + return { + /** + * + * @param {PostAuthRequest} [post_auth_request] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async postAuth(post_auth_request?: PostAuthRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.postAuth(post_auth_request, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['AuthApi.postAuth']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * AuthApi - factory interface + */ +export const AuthApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = AuthApiFp(configuration) + return { + /** + * + * @param {AuthApiPostAuthRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + postAuth(requestParameters: AuthApiPostAuthRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.postAuth(requestParameters.post_auth_request, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for postAuth operation in AuthApi. + */ +export interface AuthApiPostAuthRequest { + readonly post_auth_request?: PostAuthRequest +} + +/** + * AuthApi - object-oriented interface + */ +export class AuthApi extends BaseAPI { + /** + * + * @param {AuthApiPostAuthRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public postAuth(requestParameters: AuthApiPostAuthRequest = {}, options?: RawAxiosRequestConfig) { + return AuthApiFp(this.configuration).postAuth(requestParameters.post_auth_request, options).then((request) => request(this.axios, this.basePath)); + } +} + + /** * CarApi - axios parameter creator diff --git a/packages/api-client/src/client/docs/AuthApi.md b/packages/api-client/src/client/docs/AuthApi.md new file mode 100644 index 0000000..ee2df33 --- /dev/null +++ b/packages/api-client/src/client/docs/AuthApi.md @@ -0,0 +1,54 @@ +# AuthApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**postAuth**](#postauth) | **POST** /auth | | + +# **postAuth** +> postAuth() + + +### Example + +```typescript +import { + AuthApi, + Configuration, + PostAuthRequest +} from '@iracing-data/api-client'; + +const configuration = new Configuration(); +const apiInstance = new AuthApi(configuration); + +let post_auth_request: PostAuthRequest; // (optional) + +const { status, data } = await apiInstance.postAuth( + post_auth_request +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **post_auth_request** | **PostAuthRequest**| | | + + +### Return type + +void (empty response body) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/PostAuthRequest.md b/packages/api-client/src/client/docs/PostAuthRequest.md new file mode 100644 index 0000000..10359a0 --- /dev/null +++ b/packages/api-client/src/client/docs/PostAuthRequest.md @@ -0,0 +1,22 @@ +# PostAuthRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**email** | **string** | | [default to undefined] +**password** | **string** | | [default to undefined] + +## Example + +```typescript +import { PostAuthRequest } from '@iracing-data/api-client'; + +const instance: PostAuthRequest = { + email, + password, +}; +``` + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-schema/src/schema/parameters.ts b/packages/api-schema/src/schema/parameters.ts index ab451fc..7fad325 100644 --- a/packages/api-schema/src/schema/parameters.ts +++ b/packages/api-schema/src/schema/parameters.ts @@ -11,6 +11,11 @@ import { IRacingDivisionSchema, } from "./primitives"; +export const IRacingAuthParametersSchema = z.object({ + email: z.email(), + password: z.string(), +}); + export const IRacingDriverStatsByCategoryPathSchema = z.object({ category: IRacingCategorySchema, }); diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index 66ebbea..b50793c 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -2,6 +2,7 @@ import fs from "node:fs"; import path from "node:path"; import { IRacingAPIResponseSchema, + IRacingAuthParametersSchema, IRacingDriverStatsByCategoryPathSchema, IRacingErrorResponseSchema, IRacingHostedCombinedSessionsParametersSchema, @@ -181,6 +182,10 @@ export async function generateOpenAPISpec({ }, ], tags: [ + { + name: "auth", + description: "Auth endpoint.", + }, { name: "doc", description: "A documentation endpoint.", @@ -238,6 +243,20 @@ export async function generateOpenAPISpec({ { name: "track", description: "Track metadata and asset endpoints." }, ], paths: { + "/auth": { + post: { + operationId: "postAuth", + tags: ["auth"], + requestBody: { + content: { + "application/json": { + schema: IRacingAuthParametersSchema, + }, + }, + }, + responses: {}, + }, + }, "/data/doc": { get: { operationId: "getDocs", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 761904b..d83b6d3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,35 +61,20 @@ importers: specifier: ^5.9.2 version: 5.9.2 - examples/kapps-hello-world: - dependencies: - '@iracing-data/ws': - specifier: workspace:* - version: link:../../packages/iracing-telemetry-ws - - examples/oauth-example: + examples/iracing-proxy-api-example: dependencies: - '@iracing-data/api': - specifier: workspace:* - version: link:../../packages/api - '@iracing-data/api-client': - specifier: workspace:* - version: link:../../packages/api-client '@iracing-data/api-router': specifier: workspace:* version: link:../../packages/api-router - '@iracing-data/api-schema': - specifier: workspace:* - version: link:../../packages/api-schema '@iracing-data/oauth-client': specifier: workspace:* version: link:../../packages/oauth/client axios: specifier: ^1.7.9 - version: 1.8.2 + version: 1.13.2 better-call: specifier: ^1.0.24 - version: 1.0.24 + version: 1.0.26 cookie-parser: specifier: ^1.4.7 version: 1.4.7 @@ -104,7 +89,7 @@ importers: version: 4.0.0 zod: specifier: ^4.0.17 - version: 4.0.17 + version: 4.1.12 devDependencies: '@types/express': specifier: ^5.0.5 @@ -114,7 +99,13 @@ importers: version: 24.10.0 tsx: specifier: ^4.19.0 - version: 4.20.4 + version: 4.20.5 + + examples/kapps-hello-world: + dependencies: + '@iracing-data/ws': + specifier: workspace:* + version: link:../../packages/iracing-telemetry-ws examples/player-pit-stop-events: dependencies: @@ -2300,16 +2291,6 @@ packages: engines: {node: '>=10.0.0'} dev: true - /better-call@1.0.24: - resolution: {integrity: sha512-iGqL29cstPp4xLD2MjKL1EmyAqQHjYS+cBMt4W27rPs3vf+kuqkVPA0NYaf7JciBOzVsJdNj4cbZWXC5TardWQ==} - dependencies: - '@better-auth/utils': 0.3.0 - '@better-fetch/fetch': 1.1.18 - rou3: 0.5.1 - set-cookie-parser: 2.7.2 - uncrypto: 0.1.3 - dev: false - /better-call@1.0.26: resolution: {integrity: sha512-/5AaTPC8IRXV5yWxpAI7eR2RNiGHq4q/mjBm9DiikIkmJhzuqO1Ub66oYYqJ3eBFF+6BfdtZFRnuW0me8T0Emg==} dependencies: @@ -2340,7 +2321,7 @@ packages: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.0 + debug: 4.4.3 http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -2696,6 +2677,7 @@ packages: optional: true dependencies: ms: 2.1.3 + dev: true /debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} @@ -2707,6 +2689,7 @@ packages: optional: true dependencies: ms: 2.1.3 + dev: true /debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -2718,7 +2701,6 @@ packages: optional: true dependencies: ms: 2.1.3 - dev: true /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -3317,7 +3299,7 @@ packages: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.1 + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -3508,7 +3490,7 @@ packages: resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} engines: {node: '>= 0.8'} dependencies: - debug: 4.4.0 + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -5213,7 +5195,7 @@ packages: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} dependencies: - debug: 4.4.0 + debug: 4.4.3 depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -5328,7 +5310,7 @@ packages: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} dependencies: - debug: 4.4.0 + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -5949,10 +5931,6 @@ packages: through: 2.3.8 dev: true - /uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - dev: false - /undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} From ac01888f0080d53d63ca88b13b4ba07f2487f077 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 14:40:19 -0500 Subject: [PATCH 21/28] Update to use new api-client --- packages/helpers/sync-car-assets/package.json | 14 +--- packages/helpers/sync-car-assets/src/cli.ts | 3 - packages/helpers/sync-car-assets/src/index.ts | 39 ++++------ packages/helpers/sync-car-assets/src/util.ts | 78 +++---------------- 4 files changed, 29 insertions(+), 105 deletions(-) diff --git a/packages/helpers/sync-car-assets/package.json b/packages/helpers/sync-car-assets/package.json index f5c9673..350de2e 100644 --- a/packages/helpers/sync-car-assets/package.json +++ b/packages/helpers/sync-car-assets/package.json @@ -14,20 +14,12 @@ }, "dependencies": { "@commander-js/extra-typings": "^13.1.0", - "@iracing-data/api": "workspace:*", + "@iracing-data/api-client": "workspace:*", + "@iracing-data/api-schema": "workspace:*", "commander": "^14.0.0", "dotenv": "16.4.7" }, - "peerDependencies": { - "inquirer": "^12.4.1" - }, - "peerDependenciesMeta": { - "inquirer": { - "optional": true - } - }, "devDependencies": { - "esbuild": "^0.25.9", - "inquirer": "^12.9.4" + "esbuild": "^0.25.9" } } \ No newline at end of file diff --git a/packages/helpers/sync-car-assets/src/cli.ts b/packages/helpers/sync-car-assets/src/cli.ts index ce319cf..a8ac54b 100644 --- a/packages/helpers/sync-car-assets/src/cli.ts +++ b/packages/helpers/sync-car-assets/src/cli.ts @@ -10,7 +10,6 @@ const program = new Command("sync-iracing-car-assets") .option("--skip-info", "Skip writing car info", false) .option("-a, --write-full-assets", "Write full car assets", false) .option("--skip-assets", "Skip writing car asset", false) - .option("-u, --username ", "iRacing username") .action(async (_, command) => { console.log("Downloading car assets..."); @@ -20,7 +19,6 @@ const program = new Command("sync-iracing-car-assets") writeFullInfo, skipInfo: skipCarInfo, skipAssets: skipCarAssets, - username, } = command.optsWithGlobals(); await syncCarAssets({ @@ -29,7 +27,6 @@ const program = new Command("sync-iracing-car-assets") writeFullInfo, skipCarAssets, skipCarInfo, - username, }); console.log("Done!"); diff --git a/packages/helpers/sync-car-assets/src/index.ts b/packages/helpers/sync-car-assets/src/index.ts index 30f5217..08ed9c2 100644 --- a/packages/helpers/sync-car-assets/src/index.ts +++ b/packages/helpers/sync-car-assets/src/index.ts @@ -1,8 +1,12 @@ import { writeFile, mkdir } from "node:fs/promises"; import path from "node:path"; -import { IRacingAPISessionClient, hashPassword } from "@iracing-data/api"; +import { CarApi } from "@iracing-data/api-client"; +import { + IRacingGetCarResponse, + IRacingGetCarAssetsResponse, +} from "@iracing-data/api-schema"; import * as dotenv from "dotenv"; -import { exists, getIRacingCredentials } from "./util.js"; +import { exists, fetchAPIResponseData } from "./util.js"; dotenv.config(); @@ -12,12 +16,6 @@ export interface SyncCarAssetsOptions { */ outputDir: string; - /** - * iRacing username. - * @default undefined - */ - username?: string; - /** * Write full car info to the output directory. * @default false @@ -54,26 +52,13 @@ export interface SyncCarAssetsOptions { export async function syncCarAssets( { outputDir, - username: usernameProp, writeFullAssets = false, writeFullInfo = false, skipCarInfo = false, skipCarAssets = false, }: SyncCarAssetsOptions, - client: IRacingAPISessionClient = new IRacingAPISessionClient() + client: CarApi = new CarApi() ) { - /** - * Authenticate with the iRacing API if no credentials are found. - */ - const needAuth = client.whoami() === null; - if (needAuth) { - console.log("No credentials found. Authenticating with iRacing API."); - const { username, password } = await getIRacingCredentials(usernameProp); - const hashedPassword = await hashPassword(username, password); - await client.authenticate({ username, hashedPassword }); - console.log("Authenticated with user:", client.whoami()); - } - /** * Create the output directory if it doesn't exist. */ @@ -87,8 +72,14 @@ export async function syncCarAssets( * Get the JSON data for the track assets and track info from the API. */ const [cars, carInfo] = await Promise.all([ - client.carAssets(), - client.carGet(), + client + .getCarAssets() + .then((r) => r.data) + .then(fetchAPIResponseData), + client + .getCar() + .then((r) => r.data) + .then(fetchAPIResponseData), ]); /** diff --git a/packages/helpers/sync-car-assets/src/util.ts b/packages/helpers/sync-car-assets/src/util.ts index a0261a1..08715ce 100644 --- a/packages/helpers/sync-car-assets/src/util.ts +++ b/packages/helpers/sync-car-assets/src/util.ts @@ -1,4 +1,4 @@ -import assert from "node:assert"; +import { IracingAPIResponse } from "@iracing-data/api-client"; import { access, constants } from "node:fs/promises"; /** @@ -15,71 +15,15 @@ export const exists = async (path: string) => { } }; -/** - * Attempts to read credentials from the environment variables. If not provided, - * prompts the user to enter them. - * @returns The parsed credentials. - */ -export async function getIRacingCredentials(usernameProp?: string) { - /** - * The provided username, or the username from the environment variable, or undefined. - */ - const usernameOption = - (usernameProp ?? process.env.IRACING_USERNAME) - ? `${usernameProp ?? process.env.IRACING_USERNAME}` - : undefined; - - /** - * The password from the envrionment variable, or undefined. - */ - const passwordOption = process.env.IRACING_PASSWORD - ? `${process.env.IRACING_PASSWORD}` - : undefined; - - /** - * If inquirer is available, prompt the user for their credentials, - * else assert the credentials are provided and return them. - */ - try { - let { default: inquirer } = require("inquirer"); - const { username = usernameOption, password = passwordOption } = - await inquirer.prompt([ - { - type: "input", - name: "username", - message: "Enter your username:", - when: () => !usernameOption, - }, - { - type: "password", - name: "password", - message: "Enter your password:", - mask: "*", - when: () => !passwordOption, - }, - ]); - - assert( - username && username.length > 0, - "Could not find username via environment variable (IRACING_USERNAME), please update your env or enter when prompted." - ); - assert( - password && password.length > 0, - "Could not find password via environment variable (IRACING_PASSWORD), please update your env or enter when prompted." - ); - - return { username, password }; - } catch (error) { - console.error(error); - assert( - usernameOption && usernameOption.length > 0, - "Please provide username via environment variable (IRACING_USERNAME)." - ); - assert( - passwordOption && passwordOption.length > 0, - "Please provider password via environment variable (IRACING_PASSWORD)." - ); - - return { username: usernameOption, password: passwordOption }; +export async function fetchAPIResponseData({ + expires, + link, +}: IracingAPIResponse) { + const expirationDate = new Date(expires); + if (expirationDate.getTime() < Date.now()) { + throw new Error("Data is expired!"); } + + const data = await fetch(link); + return (await data.json()) as T; } From 06731a7f5f4bb32d6865bf51ffc1dc91cc069eb9 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 14:40:50 -0500 Subject: [PATCH 22/28] Add some types... --- packages/api-schema/src/schema/responses.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/api-schema/src/schema/responses.ts b/packages/api-schema/src/schema/responses.ts index 892f41e..2664518 100644 --- a/packages/api-schema/src/schema/responses.ts +++ b/packages/api-schema/src/schema/responses.ts @@ -70,7 +70,11 @@ export const IRacingGetCarAssetsResponseSchema = z.record( z.unknown() ); -export const IRacingGetCarResponseSchema = z.array(z.unknown()); +export const IRacingGetCarResponseSchema = z.array( + z.object({ + car_id: z.number(), + }) +); /** * Types From 8f584a3838a23b43f410fb33e8727d6a5614a42f Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 14:53:52 -0500 Subject: [PATCH 23/28] prepare for new API configuration --- packages/helpers/sync-car-assets/src/cli.ts | 24 +- pnpm-lock.yaml | 248 +------------------- tsconfig.json | 31 ++- 3 files changed, 55 insertions(+), 248 deletions(-) diff --git a/packages/helpers/sync-car-assets/src/cli.ts b/packages/helpers/sync-car-assets/src/cli.ts index a8ac54b..6e8d594 100644 --- a/packages/helpers/sync-car-assets/src/cli.ts +++ b/packages/helpers/sync-car-assets/src/cli.ts @@ -2,6 +2,7 @@ import { Command } from "@commander-js/extra-typings"; import { syncCarAssets } from "./index.js"; +import { CarApi, Configuration } from "@iracing-data/api-client"; const program = new Command("sync-iracing-car-assets") .description("Downloads the latest car assets.") @@ -13,6 +14,12 @@ const program = new Command("sync-iracing-car-assets") .action(async (_, command) => { console.log("Downloading car assets..."); + const configuration = new Configuration({ + accessToken: undefined, + }); + + const api = new CarApi(configuration); + const { outDir, writeFullAssets, @@ -21,13 +28,16 @@ const program = new Command("sync-iracing-car-assets") skipAssets: skipCarAssets, } = command.optsWithGlobals(); - await syncCarAssets({ - outputDir: outDir, - writeFullAssets, - writeFullInfo, - skipCarAssets, - skipCarInfo, - }); + await syncCarAssets( + { + outputDir: outDir, + writeFullAssets, + writeFullInfo, + skipCarAssets, + skipCarInfo, + }, + api + ); console.log("Done!"); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d83b6d3..ccc3abf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -463,9 +463,12 @@ importers: '@commander-js/extra-typings': specifier: ^13.1.0 version: 13.1.0(commander@14.0.0) - '@iracing-data/api': + '@iracing-data/api-client': specifier: workspace:* - version: link:../../api + version: link:../../api-client + '@iracing-data/api-schema': + specifier: workspace:* + version: link:../../api-schema commander: specifier: ^14.0.0 version: 14.0.0 @@ -476,9 +479,6 @@ importers: esbuild: specifier: ^0.25.9 version: 0.25.9 - inquirer: - specifier: ^12.9.4 - version: 12.9.4(@types/node@24.3.1) packages/helpers/sync-telemetry-json-schema: dependencies: @@ -1071,37 +1071,6 @@ packages: yoctocolors-cjs: 2.1.2 dev: false - /@inquirer/checkbox@4.2.2(@types/node@24.3.1): - resolution: {integrity: sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - dev: true - - /@inquirer/confirm@5.1.16(@types/node@24.3.1): - resolution: {integrity: sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - /@inquirer/confirm@5.1.6(@types/node@24.3.1): resolution: {integrity: sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==} engines: {node: '>=18'} @@ -1136,41 +1105,6 @@ packages: yoctocolors-cjs: 2.1.2 dev: false - /@inquirer/core@10.2.0(@types/node@24.3.1): - resolution: {integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - dev: true - - /@inquirer/editor@4.2.18(@types/node@24.3.1): - resolution: {integrity: sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/external-editor': 1.0.1(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - /@inquirer/editor@4.2.7(@types/node@24.3.1): resolution: {integrity: sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA==} engines: {node: '>=18'} @@ -1186,21 +1120,6 @@ packages: external-editor: 3.1.0 dev: false - /@inquirer/expand@4.0.18(@types/node@24.3.1): - resolution: {integrity: sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.2 - dev: true - /@inquirer/expand@4.0.9(@types/node@24.3.1): resolution: {integrity: sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig==} engines: {node: '>=18'} @@ -1235,11 +1154,6 @@ packages: engines: {node: '>=18'} dev: false - /@inquirer/figures@1.0.13: - resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} - engines: {node: '>=18'} - dev: true - /@inquirer/input@4.1.6(@types/node@24.3.1): resolution: {integrity: sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ==} engines: {node: '>=18'} @@ -1254,34 +1168,6 @@ packages: '@types/node': 24.3.1 dev: false - /@inquirer/input@4.2.2(@types/node@24.3.1): - resolution: {integrity: sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - - /@inquirer/number@3.0.18(@types/node@24.3.1): - resolution: {integrity: sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - /@inquirer/number@3.0.9(@types/node@24.3.1): resolution: {integrity: sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w==} engines: {node: '>=18'} @@ -1296,21 +1182,6 @@ packages: '@types/node': 24.3.1 dev: false - /@inquirer/password@4.0.18(@types/node@24.3.1): - resolution: {integrity: sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - dev: true - /@inquirer/password@4.0.9(@types/node@24.3.1): resolution: {integrity: sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ==} engines: {node: '>=18'} @@ -1348,28 +1219,6 @@ packages: '@types/node': 24.3.1 dev: false - /@inquirer/prompts@7.8.4(@types/node@24.3.1): - resolution: {integrity: sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.1) - '@inquirer/confirm': 5.1.16(@types/node@24.3.1) - '@inquirer/editor': 4.2.18(@types/node@24.3.1) - '@inquirer/expand': 4.0.18(@types/node@24.3.1) - '@inquirer/input': 4.2.2(@types/node@24.3.1) - '@inquirer/number': 3.0.18(@types/node@24.3.1) - '@inquirer/password': 4.0.18(@types/node@24.3.1) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.1) - '@inquirer/search': 3.1.1(@types/node@24.3.1) - '@inquirer/select': 4.3.2(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - /@inquirer/rawlist@4.0.9(@types/node@24.3.1): resolution: {integrity: sha512-+5t6ebehKqgoxV8fXwE49HkSF2Rc9ijNiVGEQZwvbMI61/Q5RcD+jWD6Gs1tKdz5lkI8GRBL31iO0HjGK1bv+A==} engines: {node: '>=18'} @@ -1385,21 +1234,6 @@ packages: yoctocolors-cjs: 2.1.2 dev: false - /@inquirer/rawlist@4.1.6(@types/node@24.3.1): - resolution: {integrity: sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.2 - dev: true - /@inquirer/search@3.0.9(@types/node@24.3.1): resolution: {integrity: sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA==} engines: {node: '>=18'} @@ -1416,22 +1250,6 @@ packages: yoctocolors-cjs: 2.1.2 dev: false - /@inquirer/search@3.1.1(@types/node@24.3.1): - resolution: {integrity: sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.2 - dev: true - /@inquirer/select@4.0.9(@types/node@24.3.1): resolution: {integrity: sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg==} engines: {node: '>=18'} @@ -1449,23 +1267,6 @@ packages: yoctocolors-cjs: 2.1.2 dev: false - /@inquirer/select@4.3.2(@types/node@24.3.1): - resolution: {integrity: sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - dev: true - /@inquirer/type@3.0.4(@types/node@24.3.1): resolution: {integrity: sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==} engines: {node: '>=18'} @@ -1478,18 +1279,6 @@ packages: '@types/node': 24.3.1 dev: false - /@inquirer/type@3.0.8(@types/node@24.3.1): - resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 24.3.1 - dev: true - /@isaacs/balanced-match@4.0.1: resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -2464,6 +2253,7 @@ packages: /cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + dev: false /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -3936,25 +3726,6 @@ packages: rxjs: 7.8.1 dev: false - /inquirer@12.9.4(@types/node@24.3.1): - resolution: {integrity: sha512-5bV3LOgLtMAiJq1QpaUddfRrvaX59wiMYppS7z2jNRSQ64acI0yqx7WMxWhgymenSXOyD657g9tlsTjqGYM8sg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.1) - '@inquirer/prompts': 7.8.4(@types/node@24.3.1) - '@inquirer/type': 3.0.8(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - mute-stream: 2.0.0 - run-async: 4.0.6 - rxjs: 7.8.2 - dev: true - /inquirer@8.2.7(@types/node@24.3.1): resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} engines: {node: '>=12.0.0'} @@ -4573,6 +4344,7 @@ packages: /mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} + dev: false /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -5214,11 +4986,6 @@ packages: engines: {node: '>=0.12.0'} dev: false - /run-async@4.0.6: - resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} - engines: {node: '>=0.12.0'} - dev: true - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -6148,6 +5915,7 @@ packages: /yoctocolors-cjs@2.1.2: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + dev: false /zod-openapi@5.4.3(zod@4.1.12): resolution: {integrity: sha512-6kJ/gJdvHZtuxjYHoMtkl2PixCwRuZ/s79dVkEr7arHvZGXfx7Cvh53X3HfJ5h9FzGelXOXlnyjwfX0sKEPByw==} diff --git a/tsconfig.json b/tsconfig.json index 31aa0c9..22691bc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,33 @@ { "include": [], - "references": [{ "path": "./packages/api" }, { "path": "./packages/cli" }] + "references": [ + { "path": "./packages/api" }, + { "path": "./packages/api-client" }, + { "path": "./packages/api-router" }, + { "path": "./packages/api-schema" }, + { "path": "./packages/cli" }, + { "path": "./packages/events/car-session-flag-events" }, + { "path": "./packages/events/car-track-location-events" }, + { "path": "./packages/events/pace-flag-events" }, + { "path": "./packages/events/pace-order-events" }, + { "path": "./packages/events/pit-lane-events" }, + { "path": "./packages/events/player-pit-stop-events" }, + { "path": "./packages/events/session-flag-events" }, + { "path": "./packages/events/session-state-events" }, + { "path": "./packages/events/track-location-events" }, + { "path": "./packages/helpers/api-schema-to-openapi" }, + { "path": "./packages/helpers/iracing-json-schema-to-typescript" }, + { "path": "./packages/helpers/oauth-schema-to-openapi" }, + { "path": "./packages/helpers/sync-car-assets" }, + { "path": "./packages/helpers/sync-telemetry-json-schema" }, + // { "path": "./packages/helpers/sync-track-assets" }, + { "path": "./packages/iracing-telemetry-grpc-node" }, + { "path": "./packages/iracing-telemetry-grpc-web" }, + { "path": "./packages/iracing-telemetry-http" }, + { "path": "./packages/iracing-telemetry-types" }, + { "path": "./packages/iracing-telemetry-ws" }, + { "path": "./packages/oauth/client" }, + { "path": "./packages/oauth/router" }, + { "path": "./packages/oauth/schema" } + ] } From cbb05bebde143f61e64d24a7b3d5afc96ee603ce Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:38:01 -0500 Subject: [PATCH 24/28] add axios cookiejar support --- packages/helpers/sync-car-assets/package.json | 16 +- packages/helpers/sync-car-assets/src/cli.ts | 48 ++- packages/helpers/sync-car-assets/src/util.ts | 77 +++++ pnpm-lock.yaml | 313 +++++++++++++++++- 4 files changed, 428 insertions(+), 26 deletions(-) diff --git a/packages/helpers/sync-car-assets/package.json b/packages/helpers/sync-car-assets/package.json index 350de2e..7345e91 100644 --- a/packages/helpers/sync-car-assets/package.json +++ b/packages/helpers/sync-car-assets/package.json @@ -16,10 +16,22 @@ "@commander-js/extra-typings": "^13.1.0", "@iracing-data/api-client": "workspace:*", "@iracing-data/api-schema": "workspace:*", + "axios": "^1.7.9", + "axios-cookiejar-support": "^6.0.4", "commander": "^14.0.0", - "dotenv": "16.4.7" + "dotenv": "16.4.7", + "tough-cookie": "^5.1.1" }, "devDependencies": { - "esbuild": "^0.25.9" + "esbuild": "^0.25.9", + "inquirer": "^12.9.4" + }, + "peerDependencies": { + "inquirer": "^12.4.1" + }, + "peerDependenciesMeta": { + "inquirer": { + "optional": true + } } } \ No newline at end of file diff --git a/packages/helpers/sync-car-assets/src/cli.ts b/packages/helpers/sync-car-assets/src/cli.ts index 6e8d594..ca8b029 100644 --- a/packages/helpers/sync-car-assets/src/cli.ts +++ b/packages/helpers/sync-car-assets/src/cli.ts @@ -1,8 +1,25 @@ #!/usr/bin/env node - +import crypto from "node:crypto"; import { Command } from "@commander-js/extra-typings"; +import { CarApi, AuthApi } from "@iracing-data/api-client"; +import axios from "axios"; +import { wrapper } from "axios-cookiejar-support"; +import { CookieJar } from "tough-cookie"; +import * as dotenv from "dotenv"; import { syncCarAssets } from "./index.js"; -import { CarApi, Configuration } from "@iracing-data/api-client"; +import { getIRacingCredentials } from "./util.js"; + +dotenv.config(); + +/** + * Compute the Base64‑encoded SHA‑256 hash of (password + email.toLowerCase()). + */ +export async function hashPassword(email: string, password: string) { + return crypto + .createHash("sha256") + .update(password + email.toLowerCase()) + .digest("base64"); +} const program = new Command("sync-iracing-car-assets") .description("Downloads the latest car assets.") @@ -14,11 +31,28 @@ const program = new Command("sync-iracing-car-assets") .action(async (_, command) => { console.log("Downloading car assets..."); - const configuration = new Configuration({ - accessToken: undefined, - }); + // Create an axios instance capable of handling cookies. + const client = wrapper( + axios.create({ + baseURL: "https://members-ng.iracing.com/", + withCredentials: true, + jar: new CookieJar(), + headers: { + "Content-Type": "application/json", + }, + }) + ); - const api = new CarApi(configuration); + // Use the axios instance to authenticate + const auth = new AuthApi(undefined, undefined, client); + const { username, password } = await getIRacingCredentials(); + const hashedPassword = await hashPassword(username, password); + const response = await auth.postAuth({ + post_auth_request: { + email: username, + password: hashedPassword, + }, + }); const { outDir, @@ -36,7 +70,7 @@ const program = new Command("sync-iracing-car-assets") skipCarAssets, skipCarInfo, }, - api + new CarApi(undefined, undefined, client) ); console.log("Done!"); diff --git a/packages/helpers/sync-car-assets/src/util.ts b/packages/helpers/sync-car-assets/src/util.ts index 08715ce..af71a2a 100644 --- a/packages/helpers/sync-car-assets/src/util.ts +++ b/packages/helpers/sync-car-assets/src/util.ts @@ -1,4 +1,5 @@ import { IracingAPIResponse } from "@iracing-data/api-client"; +import assert from "node:assert"; import { access, constants } from "node:fs/promises"; /** @@ -15,6 +16,82 @@ export const exists = async (path: string) => { } }; +/** + * Attempts to read credentials from the environment variables. If not provided, + * prompts the user to enter them. + * @returns The parsed credentials. + */ +export async function getIRacingCredentials(usernameProp?: string) { + /** + * The provided username, or the username from the environment variable, or undefined. + */ + const usernameOption = + (usernameProp ?? process.env.IRACING_USERNAME) + ? `${usernameProp ?? process.env.IRACING_USERNAME}` + : undefined; + + /** + * The password from the envrionment variable, or undefined. + */ + const passwordOption = process.env.IRACING_PASSWORD + ? `${process.env.IRACING_PASSWORD}` + : undefined; + + /** + * Return the username and password if provided via env + */ + if (usernameOption && passwordOption) { + return { usernameOption, passwordOption }; + } + + /** + * If inquirer is available, prompt the user for their credentials, + * else assert the credentials are provided and return them. + */ + try { + let { default: inquirer } = require("inquirer"); + const { username = usernameOption, password = passwordOption } = + await inquirer.prompt([ + { + type: "input", + name: "username", + message: "Enter your username:", + when: () => !usernameOption, + }, + { + type: "password", + name: "password", + message: "Enter your password:", + mask: "*", + when: () => !passwordOption, + }, + ]); + + assert( + username && username.length > 0, + "Could not find username via environment variable (IRACING_USERNAME), please update your env or enter when prompted." + ); + assert( + password && password.length > 0, + "Could not find password via environment variable (IRACING_PASSWORD), please update your env or enter when prompted." + ); + + return { username, password }; + } catch (error) { + console.error(error); + assert( + usernameOption && usernameOption.length > 0, + "Please provide username via environment variable (IRACING_USERNAME)." + ); + assert( + passwordOption && passwordOption.length > 0, + "Please provider password via environment variable (IRACING_PASSWORD)." + ); + + return { username: usernameOption, password: passwordOption }; + } +} + export async function fetchAPIResponseData({ expires, link, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ccc3abf..729c8b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -469,16 +469,28 @@ importers: '@iracing-data/api-schema': specifier: workspace:* version: link:../../api-schema + axios: + specifier: ^1.7.9 + version: 1.13.2 + axios-cookiejar-support: + specifier: ^6.0.4 + version: 6.0.4(axios@1.13.2)(tough-cookie@5.1.1) commander: specifier: ^14.0.0 version: 14.0.0 dotenv: specifier: 16.4.7 version: 16.4.7 + tough-cookie: + specifier: ^5.1.1 + version: 5.1.1 devDependencies: esbuild: specifier: ^0.25.9 version: 0.25.9 + inquirer: + specifier: ^12.9.4 + version: 12.11.1(@types/node@24.3.1) packages/helpers/sync-telemetry-json-schema: dependencies: @@ -612,21 +624,6 @@ importers: specifier: ^4.0.17 version: 4.0.17 - packages/oauth/router: - dependencies: - '@better-fetch/fetch': - specifier: ^1.1.18 - version: 1.1.18 - '@iracing-data/oauth-client': - specifier: workspace:* - version: link:../client - better-call: - specifier: ^1.0.26 - version: 1.0.26 - zod: - specifier: ^4.1.12 - version: 4.1.12 - packages/oauth/schema: dependencies: zod: @@ -1054,6 +1051,11 @@ packages: engines: {node: '>=18.18'} dev: true + /@inquirer/ansi@1.0.2: + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + dev: true + /@inquirer/checkbox@4.1.2(@types/node@24.3.1): resolution: {integrity: sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ==} engines: {node: '>=18'} @@ -1071,6 +1073,37 @@ packages: yoctocolors-cjs: 2.1.2 dev: false + /@inquirer/checkbox@4.3.2(@types/node@24.3.1): + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/confirm@5.1.21(@types/node@24.3.1): + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + dev: true + /@inquirer/confirm@5.1.6(@types/node@24.3.1): resolution: {integrity: sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==} engines: {node: '>=18'} @@ -1105,6 +1138,41 @@ packages: yoctocolors-cjs: 2.1.2 dev: false + /@inquirer/core@10.3.2(@types/node@24.3.1): + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/editor@4.2.23(@types/node@24.3.1): + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/external-editor': 1.0.3(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + dev: true + /@inquirer/editor@4.2.7(@types/node@24.3.1): resolution: {integrity: sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA==} engines: {node: '>=18'} @@ -1120,6 +1188,21 @@ packages: external-editor: 3.1.0 dev: false + /@inquirer/expand@4.0.23(@types/node@24.3.1): + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + yoctocolors-cjs: 2.1.3 + dev: true + /@inquirer/expand@4.0.9(@types/node@24.3.1): resolution: {integrity: sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig==} engines: {node: '>=18'} @@ -1149,11 +1232,30 @@ packages: iconv-lite: 0.6.3 dev: true + /@inquirer/external-editor@1.0.3(@types/node@24.3.1): + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 24.3.1 + chardet: 2.1.1 + iconv-lite: 0.7.0 + dev: true + /@inquirer/figures@1.0.10: resolution: {integrity: sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==} engines: {node: '>=18'} dev: false + /@inquirer/figures@1.0.15: + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + dev: true + /@inquirer/input@4.1.6(@types/node@24.3.1): resolution: {integrity: sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ==} engines: {node: '>=18'} @@ -1168,6 +1270,34 @@ packages: '@types/node': 24.3.1 dev: false + /@inquirer/input@4.3.1(@types/node@24.3.1): + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + dev: true + + /@inquirer/number@3.0.23(@types/node@24.3.1): + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + dev: true + /@inquirer/number@3.0.9(@types/node@24.3.1): resolution: {integrity: sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w==} engines: {node: '>=18'} @@ -1182,6 +1312,21 @@ packages: '@types/node': 24.3.1 dev: false + /@inquirer/password@4.0.23(@types/node@24.3.1): + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + dev: true + /@inquirer/password@4.0.9(@types/node@24.3.1): resolution: {integrity: sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ==} engines: {node: '>=18'} @@ -1197,6 +1342,28 @@ packages: ansi-escapes: 4.3.2 dev: false + /@inquirer/prompts@7.10.1(@types/node@24.3.1): + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@24.3.1) + '@inquirer/confirm': 5.1.21(@types/node@24.3.1) + '@inquirer/editor': 4.2.23(@types/node@24.3.1) + '@inquirer/expand': 4.0.23(@types/node@24.3.1) + '@inquirer/input': 4.3.1(@types/node@24.3.1) + '@inquirer/number': 3.0.23(@types/node@24.3.1) + '@inquirer/password': 4.0.23(@types/node@24.3.1) + '@inquirer/rawlist': 4.1.11(@types/node@24.3.1) + '@inquirer/search': 3.2.2(@types/node@24.3.1) + '@inquirer/select': 4.4.2(@types/node@24.3.1) + '@types/node': 24.3.1 + dev: true + /@inquirer/prompts@7.3.2(@types/node@24.3.1): resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} engines: {node: '>=18'} @@ -1234,6 +1401,21 @@ packages: yoctocolors-cjs: 2.1.2 dev: false + /@inquirer/rawlist@4.1.11(@types/node@24.3.1): + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + yoctocolors-cjs: 2.1.3 + dev: true + /@inquirer/search@3.0.9(@types/node@24.3.1): resolution: {integrity: sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA==} engines: {node: '>=18'} @@ -1250,6 +1432,22 @@ packages: yoctocolors-cjs: 2.1.2 dev: false + /@inquirer/search@3.2.2(@types/node@24.3.1): + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + yoctocolors-cjs: 2.1.3 + dev: true + /@inquirer/select@4.0.9(@types/node@24.3.1): resolution: {integrity: sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg==} engines: {node: '>=18'} @@ -1267,6 +1465,35 @@ packages: yoctocolors-cjs: 2.1.2 dev: false + /@inquirer/select@4.4.2(@types/node@24.3.1): + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + yoctocolors-cjs: 2.1.3 + dev: true + + /@inquirer/type@3.0.10(@types/node@24.3.1): + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@types/node': 24.3.1 + dev: true + /@inquirer/type@3.0.4(@types/node@24.3.1): resolution: {integrity: sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==} engines: {node: '>=18'} @@ -2023,6 +2250,20 @@ packages: possible-typed-array-names: 1.1.0 dev: true + /axios-cookiejar-support@6.0.4(axios@1.13.2)(tough-cookie@5.1.1): + resolution: {integrity: sha512-4Bzj+l63eGwnWDBFdJHeGS6Ij3ytpyqvo//ocsb5kCLN/rKthzk27Afh2iSkZtuudOBkHUWWIcyCb4GKhXqovQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + axios: '>=0.20.0' + tough-cookie: '>=4.0.0' + dependencies: + axios: 1.13.2 + http-cookie-agent: 7.0.2(tough-cookie@5.1.1) + tough-cookie: 5.1.1 + transitivePeerDependencies: + - undici + dev: false + /axios-cookiejar-support@6.0.4(axios@1.8.2)(tough-cookie@5.1.1): resolution: {integrity: sha512-4Bzj+l63eGwnWDBFdJHeGS6Ij3ytpyqvo//ocsb5kCLN/rKthzk27Afh2iSkZtuudOBkHUWWIcyCb4GKhXqovQ==} engines: {node: '>=20.0.0'} @@ -2233,6 +2474,10 @@ packages: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} dev: true + /chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + dev: true + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -2253,7 +2498,6 @@ packages: /cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} - dev: false /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -3682,6 +3926,13 @@ packages: dependencies: safer-buffer: 2.1.2 + /iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true @@ -3707,6 +3958,25 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /inquirer@12.11.1(@types/node@24.3.1): + resolution: {integrity: sha512-9VF7mrY+3OmsAfjH3yKz/pLbJ5z22E23hENKw3/LNSaA/sAt3v49bDRY+Ygct1xwuKT+U+cBfTzjCPySna69Qw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@24.3.1) + '@inquirer/prompts': 7.10.1(@types/node@24.3.1) + '@inquirer/type': 3.0.10(@types/node@24.3.1) + '@types/node': 24.3.1 + mute-stream: 2.0.0 + run-async: 4.0.6 + rxjs: 7.8.2 + dev: true + /inquirer@12.4.2(@types/node@24.3.1): resolution: {integrity: sha512-reyjHcwyK2LObXgTJH4T1Dpfhwu88LNPTZmg/KenmTsy3T8lN/kZT8Oo7UwwkB9q8+ss2qjjN7GV8oFAfyz9Xg==} engines: {node: '>=18'} @@ -4344,7 +4614,6 @@ packages: /mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} - dev: false /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4986,6 +5255,11 @@ packages: engines: {node: '>=0.12.0'} dev: false + /run-async@4.0.6: + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} + engines: {node: '>=0.12.0'} + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -5917,6 +6191,11 @@ packages: engines: {node: '>=18'} dev: false + /yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + dev: true + /zod-openapi@5.4.3(zod@4.1.12): resolution: {integrity: sha512-6kJ/gJdvHZtuxjYHoMtkl2PixCwRuZ/s79dVkEr7arHvZGXfx7Cvh53X3HfJ5h9FzGelXOXlnyjwfX0sKEPByw==} engines: {node: '>=20'} From 47098c592afb8520d86f6d82c47ee2f9f61b803d Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Thu, 13 Nov 2025 17:25:43 -0500 Subject: [PATCH 25/28] update sync car and track assets --- packages/api-client/openapi/openapi.json | 4963 +---------------- packages/api-schema/src/schema/responses.ts | 21 + packages/helpers/sync-car-assets/src/cli.ts | 2 +- packages/helpers/sync-car-assets/src/util.ts | 25 +- .../helpers/sync-track-assets/package.json | 9 +- packages/helpers/sync-track-assets/src/cli.ts | 63 +- .../helpers/sync-track-assets/src/index.ts | 53 +- .../helpers/sync-track-assets/src/util.ts | 20 +- pnpm-lock.yaml | 23 +- 9 files changed, 151 insertions(+), 5028 deletions(-) diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json index faa2eab..3e25f42 100644 --- a/packages/api-client/openapi/openapi.json +++ b/packages/api-client/openapi/openapi.json @@ -1,4962 +1 @@ -{ - "openapi": "3.1.1", - "info": { - "title": "iRacing `/data` API", - "version": "0.0.1" - }, - "servers": [ - { - "url": "https://members-ng.iracing.com/" - } - ], - "externalDocs": { - "url": "/data/doc", - "description": "Find more information on available services here. Requires authentication." - }, - "security": [ - { - "bearerAuth": [] - } - ], - "tags": [ - { - "name": "auth", - "description": "Auth endpoint." - }, - { - "name": "doc", - "description": "A documentation endpoint." - }, - { - "name": "car", - "description": "Car service endpoint." - }, - { - "name": "carclass", - "description": "Car class service endpoint." - }, - { - "name": "constants", - "description": "Constants service endpoint." - }, - { - "name": "driver_stats", - "description": "Driver stats service endpoint." - }, - { - "name": "hosted", - "description": "Hosted service endpoint." - }, - { - "name": "league", - "description": "League service endpoint" - }, - { - "name": "lookup", - "description": "Lookup endpoints for static reference data (countries, licenses, drivers, etc.)" - }, - { - "name": "member", - "description": "Member profile and related endpoints (profile, awards, participation credits)." - }, - { - "name": "results", - "description": "Race and session result endpoints (lap data, event logs, season results)." - }, - { - "name": "season", - "description": "Season-related endpoints (season lists, race guides, schedules)." - }, - { - "name": "series", - "description": "Series endpoints (series metadata, seasons, assets)." - }, - { - "name": "stats", - "description": "Statistical endpoints and summaries for members and seasons." - }, - { - "name": "team", - "description": "Team endpoints (team details, membership)." - }, - { - "name": "time_attack", - "description": "Time attack specific endpoints and member season results." - }, - { - "name": "track", - "description": "Track metadata and asset endpoints." - } - ], - "paths": { - "/auth": { - "post": { - "operationId": "postAuth", - "tags": [ - "auth" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email", - "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$" - }, - "password": { - "type": "string" - } - }, - "required": [ - "email", - "password" - ] - } - } - } - }, - "responses": {} - } - }, - "/data/doc": { - "get": { - "operationId": "getDocs", - "tags": [ - "doc" - ], - "responses": { - "200": { - "$ref": "#/components/responses/Docs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/carclass": { - "get": { - "operationId": "getCarClassDocs", - "tags": [ - "doc", - "carclass" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/carclass/get": { - "get": { - "operationId": "getCarClassGetDocs", - "tags": [ - "doc", - "carclass" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/car": { - "get": { - "operationId": "getCarDocs", - "tags": [ - "doc", - "car" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/car/assets": { - "get": { - "operationId": "getCarAssetsDocs", - "tags": [ - "doc", - "car" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/car/get": { - "get": { - "operationId": "getCarGetDocs", - "tags": [ - "doc", - "car" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants": { - "get": { - "operationId": "getConstantsDocs", - "tags": [ - "doc", - "constants" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants/categories": { - "get": { - "operationId": "getConstantsCategoriesDocs", - "tags": [ - "doc", - "constants" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants/divisions": { - "get": { - "operationId": "getConstantsDivisionsDocs", - "tags": [ - "doc", - "constants" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/constants/event_types": { - "get": { - "operationId": "getConstantsEventTypesDocs", - "tags": [ - "doc", - "constants" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category": { - "get": { - "operationId": "getDriverStatsByCategoryDocs", - "tags": [ - "doc", - "driver_stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/driver_stats_by_category/{category}": { - "get": { - "operationId": "getDriverStatsByCategoryCategoryDocs", - "tags": [ - "doc", - "driver_stats" - ], - "parameters": [ - { - "in": "path", - "name": "category", - "schema": { - "$ref": "#/components/schemas/iracingCategory" - }, - "required": true, - "description": "Racing category." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/hosted": { - "get": { - "operationId": "getHostedDocs", - "tags": [ - "doc", - "hosted" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/hosted/combined_sessions": { - "get": { - "operationId": "getHostedCombinedSessionsDocs", - "tags": [ - "doc", - "hosted" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/hosted/sessions": { - "get": { - "operationId": "getHostedSessionsDocs", - "tags": [ - "doc", - "hosted" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league": { - "get": { - "operationId": "getLeagueDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/cust_league_sessions": { - "get": { - "operationId": "getLeagueCustomerLeagueSessionsDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/directory": { - "get": { - "operationId": "getLeagueDirectoryDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/get": { - "get": { - "operationId": "getLeagueGetDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/get_points_systems": { - "get": { - "operationId": "getLeagueGetPointsSystemsDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/membership": { - "get": { - "operationId": "getLeagueMembershipDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/roster": { - "get": { - "operationId": "getLeagueRosterDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/seasons": { - "get": { - "operationId": "getLeagueSeasonsDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/season_standings": { - "get": { - "operationId": "getLeagueSeasonStandingsDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/league/season_sessions": { - "get": { - "operationId": "getLeagueSeasonSessionsDocs", - "tags": [ - "doc", - "league" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup": { - "get": { - "operationId": "getLookupDocs", - "tags": [ - "doc", - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/countries": { - "get": { - "operationId": "getLookupCountriesDocs", - "tags": [ - "doc", - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/drivers": { - "get": { - "operationId": "getLookupDriversDocs", - "tags": [ - "doc", - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/flairs": { - "get": { - "operationId": "getLookupFlairsDocs", - "tags": [ - "doc", - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/get": { - "get": { - "operationId": "getLookupGetDocs", - "tags": [ - "doc", - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/lookup/licenses": { - "get": { - "operationId": "getLookupLicensesDocs", - "tags": [ - "doc", - "lookup" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member": { - "get": { - "operationId": "getMemberDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/awards": { - "get": { - "operationId": "getMemberAwardsDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/award_instances": { - "get": { - "operationId": "getMemberAwardInstancesDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/chart_data": { - "get": { - "operationId": "getMemberChartDataDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/get": { - "get": { - "operationId": "getMemberGetDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/info": { - "get": { - "operationId": "getMemberInfoDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/participation_credits": { - "get": { - "operationId": "getMemberParticipationCreditsDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/member/profile": { - "get": { - "operationId": "getMemberProfileDocs", - "tags": [ - "doc", - "member" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results": { - "get": { - "operationId": "getResultsDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/get": { - "get": { - "operationId": "getResultsGetDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/event_log": { - "get": { - "operationId": "getResultsEventLogDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/lap_chart_data": { - "get": { - "operationId": "getResultsLapChartDataDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/lap_data": { - "get": { - "operationId": "getResultsLapDataDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/search_hosted": { - "get": { - "operationId": "getResultsSearchHostedDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/search_series": { - "get": { - "operationId": "getResultsSearchSeriesDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/results/season_results": { - "get": { - "operationId": "getResultsSeasonResultsDocs", - "tags": [ - "doc", - "results" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season": { - "get": { - "operationId": "getSeasonDocs", - "tags": [ - "doc", - "season" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/list": { - "get": { - "operationId": "getSeasonListDocs", - "tags": [ - "doc", - "season" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/race_guide": { - "get": { - "operationId": "getSeasonRaceGuideDocs", - "tags": [ - "doc", - "season" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/spectator_subsessionids": { - "get": { - "operationId": "getSeasonSpectatorSubsessionIdsDocs", - "tags": [ - "doc", - "season" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/season/spectator_subsessionids_detail": { - "get": { - "operationId": "getSeasonSpectatorSubsessionIdsDetailDocs", - "tags": [ - "doc", - "season" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series": { - "get": { - "operationId": "getSeriesDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/assets": { - "get": { - "operationId": "getSeriesAssetsDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/get": { - "get": { - "operationId": "getSeriesGetDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/past_seasons": { - "get": { - "operationId": "getSeriesPastSeasonsDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/seasons": { - "get": { - "operationId": "getSeriesSeasonsDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/season_list": { - "get": { - "operationId": "getSeriesSeasonListDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/season_schedule": { - "get": { - "operationId": "getSeriesSeasonScheduleDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/series/stats_series": { - "get": { - "operationId": "getSeriesStatsSeriesDocs", - "tags": [ - "doc", - "series" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats": { - "get": { - "operationId": "getStatsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_bests": { - "get": { - "operationId": "getStatsMemberBestsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_career": { - "get": { - "operationId": "getStatsMemberCareerDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_division": { - "get": { - "operationId": "getStatsMemberDivisionDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_recap": { - "get": { - "operationId": "getStatsMemberRecapDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_recent_races": { - "get": { - "operationId": "getStatsMemberRecentRacesDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_summary": { - "get": { - "operationId": "getStatsMemberSummaryDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/member_yearly": { - "get": { - "operationId": "getStatsMemberYearlyDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_driver_standings": { - "get": { - "operationId": "getStatsSeasonDriverStandingsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_supersession_standings": { - "get": { - "operationId": "getStatsSeasonSupersessionStandingsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_team_standings": { - "get": { - "operationId": "getStatsSeasonTeamStandingsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_tt_standings": { - "get": { - "operationId": "getStatsSeasonTTStandingsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_tt_results": { - "get": { - "operationId": "getStatsSeasonTTResultsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/season_qualify_results": { - "get": { - "operationId": "getStatsSeasonQualifyResultsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/stats/world_records": { - "get": { - "operationId": "getStatsWorldRecordsDocs", - "tags": [ - "doc", - "stats" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/team": { - "get": { - "operationId": "getTeamDocs", - "tags": [ - "doc", - "team" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/team/get": { - "get": { - "operationId": "getTeamGetDocs", - "tags": [ - "doc", - "team" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/team/membership": { - "get": { - "operationId": "getTeamMembershipDocs", - "tags": [ - "doc", - "team" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/time_attack": { - "get": { - "operationId": "getTimeAttackDocs", - "tags": [ - "doc", - "time_attack" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/time_attack/member_season_results": { - "get": { - "operationId": "getTimeAttackMemberSeasonResultsDocs", - "tags": [ - "doc", - "time_attack" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/track": { - "get": { - "operationId": "getTrackDocs", - "tags": [ - "doc", - "track" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/track/assets": { - "get": { - "operationId": "getTrackAssetsDocs", - "tags": [ - "doc", - "track" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/doc/track/get": { - "get": { - "operationId": "getTrackGetDocs", - "tags": [ - "doc", - "track" - ], - "responses": { - "200": { - "$ref": "#/components/responses/ServiceMethodDocs" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - } - } - } - }, - "/data/carclass/get": { - "get": { - "operationId": "getCarClass", - "summary": "Gets car classes.", - "tags": [ - "carclass" - ], - "externalDocs": { - "url": "/data/doc/carclass/get" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/car/assets": { - "get": { - "operationId": "getCarAssets", - "description": "image paths are relative to https://images-static.iracing.com/", - "tags": [ - "car" - ], - "externalDocs": { - "url": "/data/doc/car/assets" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/car/get": { - "get": { - "operationId": "getCar", - "tags": [ - "car" - ], - "externalDocs": { - "url": "/data/doc/car/get" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/constants/categories": { - "get": { - "operationId": "getConstantsCategories", - "description": "Constant; returned directly as an array of objects", - "tags": [ - "constants" - ], - "externalDocs": { - "url": "/data/doc/constants/categories" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/constants/divisions": { - "get": { - "operationId": "getConstantsDivisions", - "description": "Constant; returned directly as an array of objects", - "tags": [ - "constants" - ], - "externalDocs": { - "url": "/data/doc/constants/divisions" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/constants/event_types": { - "get": { - "operationId": "getConstantsEventTypes", - "description": "Constant; returned directly as an array of objects", - "tags": [ - "constants" - ], - "externalDocs": { - "url": "/data/doc/constants/event_types" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/driver_stats_by_category/{category}": { - "get": { - "operationId": "getDriverStatsByCategory", - "tags": [ - "driver_stats" - ], - "externalDocs": { - "url": "/data/doc/driver_stats_by_category/{category}" - }, - "parameters": [ - { - "in": "path", - "name": "category", - "schema": { - "$ref": "#/components/schemas/iracingCategory" - }, - "required": true, - "description": "Racing category." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/hosted/combined_sessions": { - "get": { - "operationId": "getHostedCombinedSessions", - "description": "Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.", - "tags": [ - "hosted" - ], - "externalDocs": { - "url": "/data/doc/hosted/combined_sessions" - }, - "parameters": [ - { - "in": "query", - "name": "package_id", - "schema": { - "description": "If set, return only sessions using this car or track package ID.", - "type": "number" - }, - "description": "If set, return only sessions using this car or track package ID." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/hosted/sessions": { - "get": { - "operationId": "getHostedSessions", - "description": "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", - "tags": [ - "hosted" - ], - "externalDocs": { - "url": "/data/doc/hosted/sessions" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/cust_league_sessions": { - "get": { - "operationId": "getLeagueCustomerLeagueSessions", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/cust_league_sessions" - }, - "parameters": [ - { - "in": "query", - "name": "mine", - "schema": { - "description": "If true, return only sessions created by this user.", - "type": "boolean" - }, - "description": "If true, return only sessions created by this user." - }, - { - "in": "query", - "name": "package_id", - "schema": { - "description": "If set, return only sessions using this car or track package ID.", - "type": "number" - }, - "description": "If set, return only sessions using this car or track package ID." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/directory": { - "get": { - "operationId": "getLeagueDirectory", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/directory" - }, - "parameters": [ - { - "in": "query", - "name": "search", - "schema": { - "description": "Will search against league name, description, owner, and league ID.", - "type": "string" - }, - "description": "Will search against league name, description, owner, and league ID." - }, - { - "in": "query", - "name": "tag", - "schema": { - "description": "One or more tags, comma-separated.", - "type": "string" - }, - "description": "One or more tags, comma-separated." - }, - { - "in": "query", - "name": "restrict_to_member", - "schema": { - "description": "If true include only leagues for which customer is a member.", - "type": "boolean" - }, - "description": "If true include only leagues for which customer is a member." - }, - { - "in": "query", - "name": "restrict_to_recruiting", - "schema": { - "description": "If true include only leagues which are recruiting.", - "type": "boolean" - }, - "description": "If true include only leagues which are recruiting." - }, - { - "in": "query", - "name": "restrict_to_friends", - "schema": { - "description": "If true include only leagues owned by a friend.", - "type": "boolean" - }, - "description": "If true include only leagues owned by a friend." - }, - { - "in": "query", - "name": "restrict_to_watched", - "schema": { - "description": "If true include only leagues owned by a watched member.", - "type": "boolean" - }, - "description": "If true include only leagues owned by a watched member." - }, - { - "in": "query", - "name": "minimum_roster_count", - "schema": { - "description": "If set include leagues with at least this number of members.", - "type": "number" - }, - "description": "If set include leagues with at least this number of members." - }, - { - "in": "query", - "name": "maximum_roster_count", - "schema": { - "description": "If set include leagues with no more than this number of members.", - "type": "number" - }, - "description": "If set include leagues with no more than this number of members." - }, - { - "in": "query", - "name": "lowerbound", - "schema": { - "description": "First row of results to return. Defaults to 1.", - "type": "number" - }, - "description": "First row of results to return. Defaults to 1." - }, - { - "in": "query", - "name": "upperbound", - "schema": { - "description": "Last row of results to return. Defaults to lowerbound + 39.", - "type": "number" - }, - "description": "Last row of results to return. Defaults to lowerbound + 39." - }, - { - "in": "query", - "name": "sort", - "schema": { - "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.", - "type": "string" - }, - "description": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance." - }, - { - "in": "query", - "name": "order", - "schema": { - "description": "One of asc or desc. Defaults to asc.", - "type": "string" - }, - "description": "One of asc or desc. Defaults to asc." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/get": { - "get": { - "operationId": "getLeague", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/get" - }, - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "description": "For faster responses, only request when necessary.", - "type": "boolean" - }, - "description": "For faster responses, only request when necessary." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/get_points_systems": { - "get": { - "operationId": "getLeaguePointsSystems", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/get_points_systems" - }, - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_id", - "schema": { - "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.", - "type": "number" - }, - "description": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/membership": { - "get": { - "operationId": "getLeagueMembership", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/membership" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.", - "$ref": "#/components/schemas/customerId" - }, - "description": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned." - }, - { - "in": "query", - "name": "include_league", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/roster": { - "get": { - "operationId": "getLeagueRoster", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/roster" - }, - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "description": "For faster responses, only request when necessary.", - "type": "boolean" - }, - "description": "For faster responses, only request when necessary." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/seasons": { - "get": { - "operationId": "getLeagueSeasons", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/seasons" - }, - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "retired", - "schema": { - "description": "If true include seasons which are no longer active.", - "type": "boolean" - }, - "description": "If true include seasons which are no longer active." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/season_standings": { - "get": { - "operationId": "getLeagueSeasonStandings", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/season_standings" - }, - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "car_id", - "schema": { - "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.", - "type": "number" - }, - "description": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/league/season_sessions": { - "get": { - "operationId": "getLeagueSeasonSessions", - "tags": [ - "league" - ], - "externalDocs": { - "url": "/data/doc/league/season_sessions" - }, - "parameters": [ - { - "in": "query", - "name": "league_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "results_only", - "schema": { - "description": "If true include only sessions for which results are available.", - "type": "boolean" - }, - "description": "If true include only sessions for which results are available." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/countries": { - "get": { - "operationId": "getLookupCountries", - "tags": [ - "lookup" - ], - "externalDocs": { - "url": "/data/doc/lookup/countries" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/flairs": { - "get": { - "operationId": "getLookupFlairs", - "tags": [ - "lookup" - ], - "externalDocs": { - "url": "/data/doc/lookup/flairs" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/licenses": { - "get": { - "operationId": "getLookupLicenses", - "tags": [ - "lookup" - ], - "externalDocs": { - "url": "/data/doc/lookup/licenses" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/drivers": { - "get": { - "operationId": "getLookupDrivers", - "tags": [ - "lookup" - ], - "externalDocs": { - "url": "/data/doc/lookup/drivers" - }, - "parameters": [ - { - "in": "query", - "name": "search_term", - "schema": { - "description": "A cust_id or partial name for which to search.", - "type": "string" - }, - "required": true, - "description": "A cust_id or partial name for which to search." - }, - { - "in": "query", - "name": "league_id", - "schema": { - "description": "Narrow the search to the roster of the given league.", - "type": "number" - }, - "description": "Narrow the search to the roster of the given league." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/lookup/get": { - "get": { - "operationId": "getLookup", - "tags": [ - "lookup" - ], - "externalDocs": { - "url": "/data/doc/lookup/get" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/awards": { - "get": { - "operationId": "getMemberAwards", - "tags": [ - "member" - ], - "externalDocs": { - "url": "/data/doc/member/awards" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/award_instances": { - "get": { - "operationId": "getMemberAwardInstances", - "tags": [ - "member" - ], - "externalDocs": { - "url": "/data/doc/member/award_instances" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "award_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/chart_data": { - "get": { - "operationId": "getMemberChartData", - "tags": [ - "member" - ], - "externalDocs": { - "url": "/data/doc/member/chart_data" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "category_id", - "schema": { - "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road", - "type": "number" - }, - "required": true, - "description": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road" - }, - { - "in": "query", - "name": "chart_type", - "schema": { - "description": "1 - iRating; 2 - TT Rating; 3 - License/SR", - "type": "number" - }, - "required": true, - "description": "1 - iRating; 2 - TT Rating; 3 - License/SR" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/get": { - "get": { - "operationId": "getMember", - "tags": [ - "member" - ], - "externalDocs": { - "url": "/data/doc/member/get" - }, - "parameters": [ - { - "in": "query", - "name": "cust_ids", - "schema": { - "description": "Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4", - "type": "string", - "pattern": "^\\d+(?:,\\d+)*$" - }, - "required": true, - "description": "Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4" - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/info": { - "get": { - "operationId": "getMemberInfo", - "tags": [ - "member" - ], - "externalDocs": { - "url": "/data/doc/member/info" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/participation_credits": { - "get": { - "operationId": "getMemberParticipationCredits", - "tags": [ - "member" - ], - "externalDocs": { - "url": "/data/doc/member/participation_credits" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/member/profile": { - "get": { - "operationId": "getMemberProfile", - "summary": "Gets a requested user's profile.", - "tags": [ - "member" - ], - "externalDocs": { - "url": "/data/doc/member/profile" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/get": { - "get": { - "operationId": "getResults", - "tags": [ - "results" - ], - "externalDocs": { - "url": "/data/doc/results/get" - }, - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/event_log": { - "get": { - "operationId": "getResultsEventLog", - "tags": [ - "results" - ], - "externalDocs": { - "url": "/data/doc/results/event_log" - }, - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "simsession_number", - "schema": { - "description": "The main event is 0; the preceding event is -1, and so on.", - "type": "number" - }, - "required": true, - "description": "The main event is 0; the preceding event is -1, and so on." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/lap_chart_data": { - "get": { - "operationId": "getResultsLapChartData", - "tags": [ - "results" - ], - "externalDocs": { - "url": "/data/doc/results/lap_chart_data" - }, - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "simsession_number", - "schema": { - "description": "The main event is 0; the preceding event is -1, and so on.", - "type": "number" - }, - "required": true, - "description": "The main event is 0; the preceding event is -1, and so on." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/lap_data": { - "get": { - "operationId": "getResultsLapData", - "tags": [ - "results" - ], - "externalDocs": { - "url": "/data/doc/results/lap_data" - }, - "parameters": [ - { - "in": "query", - "name": "subsession_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "simsession_number", - "schema": { - "description": "The main event is 0; the preceding event is -1, and so on.", - "type": "number" - }, - "required": true, - "description": "The main event is 0; the preceding event is -1, and so on." - }, - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included." - }, - { - "in": "query", - "name": "team_id", - "schema": { - "description": "Required if the subsession was a team event.", - "type": "number" - }, - "description": "Required if the subsession was a team event." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/search_hosted": { - "get": { - "operationId": "getResultsSearchHosted", - "tags": [ - "results" - ], - "externalDocs": { - "url": "/data/doc/results/search_hosted" - }, - "parameters": [ - { - "in": "query", - "name": "start_range_begin", - "schema": { - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "start_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "finish_range_begin", - "schema": { - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "finish_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "The participant's customer ID. Ignored if team_id is supplied.", - "$ref": "#/components/schemas/customerId" - }, - "description": "The participant's customer ID. Ignored if team_id is supplied." - }, - { - "in": "query", - "name": "team_id", - "schema": { - "description": "The team ID to search for. Takes priority over cust_id if both are supplied.", - "type": "number" - }, - "description": "The team ID to search for. Takes priority over cust_id if both are supplied." - }, - { - "in": "query", - "name": "host_cust_id", - "schema": { - "description": "The host's customer ID.", - "$ref": "#/components/schemas/customerId" - }, - "description": "The host's customer ID." - }, - { - "in": "query", - "name": "session_name", - "schema": { - "description": "Part or all of the session's name.", - "type": "string" - }, - "description": "Part or all of the session's name." - }, - { - "in": "query", - "name": "league_id", - "schema": { - "description": "Include only results for the league with this ID.", - "type": "number" - }, - "description": "Include only results for the league with this ID." - }, - { - "in": "query", - "name": "league_season_id", - "schema": { - "description": "Include only results for the league season with this ID.", - "type": "number" - }, - "description": "Include only results for the league season with this ID." - }, - { - "in": "query", - "name": "car_id", - "schema": { - "description": "One of the cars used by the session.", - "type": "number" - }, - "description": "One of the cars used by the session." - }, - { - "in": "query", - "name": "track_id", - "schema": { - "description": "The ID of the track used by the session.", - "type": "number" - }, - "description": "The ID of the track used by the session." - }, - { - "in": "query", - "name": "category_ids", - "schema": { - "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", - "type": "string", - "pattern": "^\\d+(?:,\\d+)*$" - }, - "description": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/search_series": { - "get": { - "operationId": "getResultsSearchSeries", - "tags": [ - "results" - ], - "externalDocs": { - "url": "/data/doc/results/search_series" - }, - "parameters": [ - { - "in": "query", - "name": "season_year", - "schema": { - "description": "Required when using season_quarter.", - "type": "number" - }, - "description": "Required when using season_quarter." - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "description": "Required when using season_year.", - "type": "number" - }, - "description": "Required when using season_year." - }, - { - "in": "query", - "name": "start_range_begin", - "schema": { - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "start_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "finish_range_begin", - "schema": { - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - { - "in": "query", - "name": "finish_range_end", - "schema": { - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - }, - "description": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." - }, - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Include only sessions in which this customer participated. Ignored if team_id is supplied." - }, - { - "in": "query", - "name": "team_id", - "schema": { - "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.", - "type": "number" - }, - "description": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied." - }, - { - "in": "query", - "name": "series_id", - "schema": { - "description": "Include only sessions for series with this ID.", - "type": "number" - }, - "description": "Include only sessions for series with this ID." - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "Include only sessions with this race week number.", - "type": "number" - }, - "description": "Include only sessions with this race week number." - }, - { - "in": "query", - "name": "official_only", - "schema": { - "description": "If true, include only sessions earning championship points. Defaults to all.", - "type": "boolean" - }, - "description": "If true, include only sessions earning championship points. Defaults to all." - }, - { - "in": "query", - "name": "event_types", - "schema": { - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", - "type": "string", - "pattern": "^\\d+(?:,\\d+)*$" - }, - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" - }, - { - "in": "query", - "name": "category_ids", - "schema": { - "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4", - "type": "string", - "pattern": "^\\d+(?:,\\d+)*$" - }, - "description": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/results/season_results": { - "get": { - "operationId": "getResultsSeasonResults", - "tags": [ - "results" - ], - "externalDocs": { - "url": "/data/doc/results/season_results" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "event_type", - "schema": { - "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race", - "$ref": "#/components/schemas/iracingEventType" - }, - "description": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race" - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/season/list": { - "get": { - "operationId": "getSeasonList", - "tags": [ - "season" - ], - "externalDocs": { - "url": "/data/doc/season/list" - }, - "parameters": [ - { - "in": "query", - "name": "season_year", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/season/race_guide": { - "get": { - "operationId": "getSeasonRaceGuide", - "tags": [ - "season" - ], - "externalDocs": { - "url": "/data/doc/season/race_guide" - }, - "parameters": [ - { - "in": "query", - "name": "from", - "schema": { - "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.", - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$" - }, - "description": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time." - }, - { - "in": "query", - "name": "include_end_after_from", - "schema": { - "description": "Include sessions which start before 'from' but end after.", - "type": "boolean" - }, - "description": "Include sessions which start before 'from' but end after." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/season/spectator_subsessionids": { - "get": { - "operationId": "getSeasonSpectatorSubsessionIds", - "tags": [ - "season" - ], - "externalDocs": { - "url": "/data/doc/season/spectator_subsessionids" - }, - "parameters": [ - { - "in": "query", - "name": "event_types", - "schema": { - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", - "type": "array", - "items": { - "$ref": "#/components/schemas/iracingEventType" - } - }, - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/season/spectator_subsessionids_detail": { - "get": { - "operationId": "getSeasonSpectatorSubsessionIdsDetail", - "tags": [ - "season" - ], - "externalDocs": { - "url": "/data/doc/season/spectator_subsessionids_detail" - }, - "parameters": [ - { - "in": "query", - "name": "event_types", - "schema": { - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5", - "type": "array", - "items": { - "$ref": "#/components/schemas/iracingEventType" - } - }, - "description": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" - }, - { - "in": "query", - "name": "season_ids", - "schema": { - "description": "Seasons to include in the search. Defaults to all. ?season_ids=513,937", - "type": "array", - "items": { - "type": "number" - } - }, - "description": "Seasons to include in the search. Defaults to all. ?season_ids=513,937" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/assets": { - "get": { - "operationId": "getSeriesAssets", - "tags": [ - "series" - ], - "externalDocs": { - "url": "/data/doc/series/assets" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/get": { - "get": { - "operationId": "getSeries", - "tags": [ - "series" - ], - "externalDocs": { - "url": "/data/doc/series/get" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/past_seasons": { - "get": { - "operationId": "getSeriesPastSeasons", - "tags": [ - "series" - ], - "externalDocs": { - "url": "/data/doc/series/past_seasons" - }, - "parameters": [ - { - "in": "query", - "name": "series_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/seasons": { - "get": { - "operationId": "getSeriesSeasons", - "tags": [ - "series" - ], - "externalDocs": { - "url": "/data/doc/series/seasons" - }, - "parameters": [ - { - "in": "query", - "name": "include_series", - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "season_year", - "schema": { - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", - "type": "number" - }, - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.", - "type": "number" - }, - "description": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/season_list": { - "get": { - "operationId": "getSeriesSeasonList", - "tags": [ - "series" - ], - "externalDocs": { - "url": "/data/doc/series/season_list" - }, - "parameters": [ - { - "in": "query", - "name": "include_series", - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "season_year", - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "type": "number" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/season_schedule": { - "get": { - "operationId": "getSeriesSeasonSchedule", - "tags": [ - "series" - ], - "externalDocs": { - "url": "/data/doc/series/season_schedule" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/series/stats_series": { - "get": { - "operationId": "getSeriesStatsSeries", - "tags": [ - "series" - ], - "externalDocs": { - "url": "/data/doc/series/stats_series" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_bests": { - "get": { - "operationId": "getStatsMemberBests", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/member_bests" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "car_id", - "schema": { - "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls.", - "type": "number" - }, - "description": "First call should exclude car_id; use cars_driven list in return for subsequent calls." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_career": { - "get": { - "operationId": "getStatsMemberCareer", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/member_career" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_division": { - "get": { - "operationId": "getStatsMemberDivision", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/member_division" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "event_type", - "schema": { - "description": "The event type code for the division type: 4 - Time Trial; 5 - Race", - "anyOf": [ - { - "description": "Time trial", - "type": "number", - "const": 4 - }, - { - "description": "Race", - "type": "number", - "const": 5 - } - ] - }, - "required": true, - "description": "The event type code for the division type: 4 - Time Trial; 5 - Race" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_recap": { - "get": { - "operationId": "getStatsMemberRecap", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/member_recap" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - }, - { - "in": "query", - "name": "year", - "schema": { - "description": "Season year; if not supplied the current calendar year (UTC) is used.", - "anyOf": [ - { - "type": "number", - "const": 1 - }, - { - "type": "number", - "const": 2 - }, - { - "type": "number", - "const": 3 - }, - { - "type": "number", - "const": 4 - } - ] - }, - "description": "Season year; if not supplied the current calendar year (UTC) is used." - }, - { - "in": "query", - "name": "season", - "schema": { - "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year.", - "type": "number" - }, - "description": "Season (quarter) within the year; if not supplied the recap will be for the entire year." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_recent_races": { - "get": { - "operationId": "getStatsMemberRecentRaces", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/member_recent_races" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_summary": { - "get": { - "operationId": "getStatsMemberSummary", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/member_summary" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/member_yearly": { - "get": { - "operationId": "getStatsMemberYearly", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/member_yearly" - }, - "parameters": [ - { - "in": "query", - "name": "cust_id", - "schema": { - "description": "Defaults to the authenticated member.", - "$ref": "#/components/schemas/customerId" - }, - "description": "Defaults to the authenticated member." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_driver_standings": { - "get": { - "operationId": "getStatsSeasonDriverStandings", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/season_driver_standings" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_supersession_standings": { - "get": { - "operationId": "getStatsSeasonSupersessionStandings", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/season_supersession_standings" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_team_standings": { - "get": { - "operationId": "getStatsSeasonTeamStandings", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/season_team_standings" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_time_trial_standings": { - "get": { - "operationId": "getStatsSeasonTimeTrialStandings", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/season_time_trial_standings" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "description": "The first race week of a season is 0." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_time_trial_results": { - "get": { - "operationId": "getStatsSeasonTimeTrialResults", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/season_time_trial_results" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "required": true, - "description": "The first race week of a season is 0." - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/season_qualify_results": { - "get": { - "operationId": "getStatsSeasonQualifyResults", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/season_qualify_results" - }, - "parameters": [ - { - "in": "query", - "name": "season_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "car_class_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "race_week_num", - "schema": { - "description": "The first race week of a season is 0.", - "type": "number" - }, - "required": true, - "description": "The first race week of a season is 0." - }, - { - "in": "query", - "name": "division", - "schema": { - "$ref": "#/components/schemas/iracingDivision" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/stats/world_records": { - "get": { - "operationId": "getStatsWorldRecords", - "tags": [ - "stats" - ], - "externalDocs": { - "url": "/data/doc/stats/world_records" - }, - "parameters": [ - { - "in": "query", - "name": "car_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "track_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "season_year", - "schema": { - "description": "Limit best times to a given year.", - "type": "number" - }, - "description": "Limit best times to a given year." - }, - { - "in": "query", - "name": "season_quarter", - "schema": { - "description": "Limit best times to a given quarter; only applicable when year is used.", - "type": "number" - }, - "description": "Limit best times to a given quarter; only applicable when year is used." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/team/get": { - "get": { - "operationId": "getTeam", - "tags": [ - "team" - ], - "externalDocs": { - "url": "/data/doc/team/get" - }, - "parameters": [ - { - "in": "query", - "name": "team_id", - "schema": { - "type": "number" - }, - "required": true - }, - { - "in": "query", - "name": "include_licenses", - "schema": { - "description": "For faster responses, only request when necessary.", - "type": "boolean" - }, - "description": "For faster responses, only request when necessary." - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/team/membership": { - "get": { - "operationId": "getTeamMembership", - "tags": [ - "team" - ], - "externalDocs": { - "url": "/data/doc/team/membership" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/time_attack/member_season_results": { - "get": { - "operationId": "getTimeAttackMemberSeasonResults", - "tags": [ - "time_attack" - ], - "externalDocs": { - "url": "/data/doc/time_attack/member_season_results" - }, - "parameters": [ - { - "in": "query", - "name": "ta_comp_season_id", - "schema": { - "type": "number" - }, - "required": true - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/track/assets": { - "get": { - "operationId": "getTrackAssets", - "tags": [ - "track" - ], - "externalDocs": { - "url": "/data/doc/track/assets" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - }, - "/data/track/get": { - "get": { - "operationId": "getTrack", - "tags": [ - "track" - ], - "externalDocs": { - "url": "/data/doc/track/get" - }, - "responses": { - "200": { - "$ref": "#/components/responses/Success" - }, - "401": { - "$ref": "#/components/responses/Unauthorized" - }, - "429": { - "$ref": "#/components/responses/RateLimited" - }, - "503": { - "$ref": "#/components/responses/Maintenance" - } - } - } - } - }, - "components": { - "schemas": { - "iracingCategory": { - "description": "Racing category.", - "anyOf": [ - { - "description": "Oval discipline", - "type": "string", - "const": "oval" - }, - { - "description": "Road discipline. Legacy, use `sports_car` or `formula_car` instead.", - "type": "string", - "const": "road" - }, - { - "description": "Dirt road discipline.", - "type": "string", - "const": "dirt_road" - }, - { - "description": "Dirt oval discipline.", - "type": "string", - "const": "dirt_oval" - }, - { - "description": "Sports car discipline.", - "type": "string", - "const": "sports_car" - }, - { - "description": "Formula car discipline.", - "type": "string", - "const": "formula_car" - } - ] - }, - "customerId": { - "description": "Numeric ID of a customer on iRacing.", - "type": "number" - }, - "iracingEventType": { - "description": "iRacing Event Type", - "anyOf": [ - { - "description": "Practice", - "type": "number", - "const": 2 - }, - { - "description": "Qualifying", - "type": "number", - "const": 3 - }, - { - "description": "Time trial", - "type": "number", - "const": 4 - }, - { - "description": "Race", - "type": "number", - "const": 5 - } - ] - }, - "iracingDivision": { - "description": "iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.", - "anyOf": [ - { - "description": "Division 1", - "type": "number", - "const": 0 - }, - { - "description": "Division 2", - "type": "number", - "const": 1 - }, - { - "description": "Division 3", - "type": "number", - "const": 2 - }, - { - "description": "Division 4", - "type": "number", - "const": 3 - }, - { - "description": "Division 5", - "type": "number", - "const": 4 - }, - { - "description": "Division 6", - "type": "number", - "const": 5 - }, - { - "description": "Division 7", - "type": "number", - "const": 6 - }, - { - "description": "Division 8", - "type": "number", - "const": 7 - }, - { - "description": "Division 9", - "type": "number", - "const": 8 - }, - { - "description": "Division 10", - "type": "number", - "const": 9 - }, - { - "description": "Rookie", - "type": "number", - "const": 10 - } - ] - }, - "iracingAPIResponse": { - "description": "Response from iRacing `/data` API.", - "type": "object", - "properties": { - "link": { - "description": "A link to the cached data", - "type": "string", - "format": "uri" - }, - "expires": { - "type": "string", - "format": "date-time", - "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" - } - }, - "required": [ - "link", - "expires" - ], - "additionalProperties": false - }, - "iracingServicesDocs": { - "description": "An index of available services on the iRacing API.", - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/components/schemas/iracingServiceDocs" - } - }, - "iracingServiceDocs": { - "description": "An index of service methods available for the requested service.", - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/components/schemas/iracingServiceMethodDocs" - } - }, - "iracingServiceMethodDocs": { - "description": "An iRacing API Service Method object.", - "type": "object", - "properties": { - "link": { - "type": "string", - "format": "uri" - }, - "parameters": { - "type": "object", - "propertyNames": { - "type": "string" - }, - "additionalProperties": { - "$ref": "#/components/schemas/iracingServiceMethodParametersDocs" - } - }, - "expirationSeconds": { - "type": "number" - } - }, - "required": [ - "link", - "parameters" - ], - "additionalProperties": false - }, - "iracingServiceMethodParametersDocs": { - "description": "An iRacing API Service Method Parameters object.", - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "note": { - "type": "string" - }, - "required": { - "type": "boolean" - } - }, - "required": [ - "type" - ], - "additionalProperties": false - }, - "errorResponse": { - "type": "object", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - }, - "note": { - "type": "string" - } - }, - "required": [ - "error" - ], - "additionalProperties": false - } - }, - "headers": { - "x-ratelimit-limit": { - "required": true, - "description": "The current total rate limit.", - "schema": { - "title": "Rate limit limit", - "description": "The current total rate limit.", - "type": "number" - } - }, - "x-ratelimit-remaining": { - "required": true, - "description": "How much of the rate limit you have remaining.", - "schema": { - "title": "Rate limit remaining", - "description": "How much of the rate limit you have remaining.", - "type": "number" - } - }, - "x-ratelimit-reset": { - "required": true, - "description": "When the rate limit will reset in epoch timestamp.", - "schema": { - "title": "Rate limit reset", - "description": "When the rate limit will reset in epoch timestamp.", - "type": "string" - } - } - }, - "responses": { - "Success": { - "description": "Success", - "headers": { - "x-ratelimit-limit": { - "$ref": "#/components/headers/x-ratelimit-limit" - }, - "x-ratelimit-remaining": { - "$ref": "#/components/headers/x-ratelimit-remaining" - }, - "x-ratelimit-reset": { - "$ref": "#/components/headers/x-ratelimit-reset" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/iracingAPIResponse" - } - } - } - }, - "Docs": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/iracingServicesDocs" - } - } - } - }, - "ServiceDocs": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/iracingServiceDocs" - } - } - } - }, - "ServiceMethodDocs": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/iracingServiceMethodDocs" - } - } - } - }, - "RateLimited": { - "description": "Rate limited", - "headers": { - "x-ratelimit-limit": { - "$ref": "#/components/headers/x-ratelimit-limit" - }, - "x-ratelimit-remaining": { - "$ref": "#/components/headers/x-ratelimit-remaining" - }, - "x-ratelimit-reset": { - "$ref": "#/components/headers/x-ratelimit-reset" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/errorResponse" - } - } - } - }, - "Maintenance": { - "description": "Maintenance", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/errorResponse" - } - } - } - }, - "Unauthorized": { - "description": "Access token is missing or invalid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/errorResponse" - } - } - } - } - }, - "securitySchemes": { - "bearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT", - "description": "JWT Authentication" - }, - "oAuth2": { - "type": "oauth2", - "description": "OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html", - "flows": { - "authorizationCode": { - "authorizationUrl": "https://oauth.iracing.com/oauth2/authorize", - "tokenUrl": "https://oauth.iracing.com/oauth2/token", - "scopes": { - "iracing.auth": "Authorization for iRacing services.", - "iracing.profile": "Access to the iRacing profile." - } - } - } - } - } - } -} \ No newline at end of file +{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"externalDocs":{"url":"/data/doc","description":"Find more information on available services here. Requires authentication."},"security":[{"bearerAuth":[]}],"tags":[{"name":"auth","description":"Auth endpoint."},{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/auth":{"post":{"operationId":"postAuth","tags":["auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string"}},"required":["email","password"]}}}},"responses":{}}},"/data/doc":{"get":{"operationId":"getDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/Docs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"operationId":"getCarClassDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"operationId":"getCarClassGetDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"operationId":"getCarDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"operationId":"getCarAssetsDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"operationId":"getCarGetDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"operationId":"getConstantsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"operationId":"getConstantsCategoriesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"operationId":"getConstantsDivisionsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"operationId":"getConstantsEventTypesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"operationId":"getDriverStatsByCategoryDocs","tags":["doc","driver_stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategoryCategoryDocs","tags":["doc","driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"operationId":"getHostedDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"operationId":"getHostedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"operationId":"getLeagueDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"operationId":"getLeagueDirectoryDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"operationId":"getLeagueGetDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"operationId":"getLeagueGetPointsSystemsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"operationId":"getLeagueMembershipDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"operationId":"getLeagueRosterDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"operationId":"getLeagueSeasonsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandingsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"operationId":"getLookupDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"operationId":"getLookupCountriesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"operationId":"getLookupDriversDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"operationId":"getLookupFlairsDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"operationId":"getLookupGetDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"operationId":"getLookupLicensesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"operationId":"getMemberDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"operationId":"getMemberAwardsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"operationId":"getMemberAwardInstancesDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"operationId":"getMemberChartDataDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"operationId":"getMemberGetDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"operationId":"getMemberInfoDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"operationId":"getMemberParticipationCreditsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"operationId":"getMemberProfileDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"operationId":"getResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"operationId":"getResultsGetDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"operationId":"getResultsEventLogDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"operationId":"getResultsLapDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"operationId":"getResultsSearchHostedDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"operationId":"getResultsSearchSeriesDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"operationId":"getResultsSeasonResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"operationId":"getSeasonDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"operationId":"getSeasonListDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"operationId":"getSeasonRaceGuideDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetailDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"operationId":"getSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"operationId":"getSeriesAssetsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"operationId":"getSeriesGetDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"operationId":"getSeriesSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"operationId":"getSeriesSeasonListDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"operationId":"getSeriesSeasonScheduleDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"operationId":"getSeriesStatsSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"operationId":"getStatsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"operationId":"getStatsMemberBestsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"operationId":"getStatsMemberCareerDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"operationId":"getStatsMemberDivisionDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"operationId":"getStatsMemberRecapDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRacesDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"operationId":"getStatsMemberSummaryDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearlyDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"operationId":"getStatsSeasonTTStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"operationId":"getStatsSeasonTTResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"operationId":"getStatsWorldRecordsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"operationId":"getTeamDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"operationId":"getTeamGetDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"operationId":"getTeamMembershipDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"operationId":"getTimeAttackDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResultsDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"operationId":"getTrackDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"operationId":"getTrackAssetsDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"operationId":"getTrackGetDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"externalDocs":{"url":"/data/doc/carclass/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"operationId":"getCarAssets","description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"externalDocs":{"url":"/data/doc/car/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"operationId":"getCar","tags":["car"],"externalDocs":{"url":"/data/doc/car/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"operationId":"getConstantsCategories","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/categories"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"operationId":"getConstantsDivisions","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/divisions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"operationId":"getConstantsEventTypes","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/event_types"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategory","tags":["driver_stats"],"externalDocs":{"url":"/data/doc/driver_stats_by_category/{category}"},"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessions","description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/combined_sessions"},"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"operationId":"getHostedSessions","description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/sessions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/cust_league_sessions"},"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"operationId":"getLeagueDirectory","tags":["league"],"externalDocs":{"url":"/data/doc/league/directory"},"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"operationId":"getLeague","tags":["league"],"externalDocs":{"url":"/data/doc/league/get"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"operationId":"getLeaguePointsSystems","tags":["league"],"externalDocs":{"url":"/data/doc/league/get_points_systems"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"operationId":"getLeagueMembership","tags":["league"],"externalDocs":{"url":"/data/doc/league/membership"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"operationId":"getLeagueRoster","tags":["league"],"externalDocs":{"url":"/data/doc/league/roster"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"operationId":"getLeagueSeasons","tags":["league"],"externalDocs":{"url":"/data/doc/league/seasons"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandings","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_standings"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_sessions"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"operationId":"getLookupCountries","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/countries"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"operationId":"getLookupFlairs","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/flairs"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"operationId":"getLookupLicenses","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/licenses"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"operationId":"getLookupDrivers","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/drivers"},"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"operationId":"getLookup","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"operationId":"getMemberAwards","tags":["member"],"externalDocs":{"url":"/data/doc/member/awards"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"operationId":"getMemberAwardInstances","tags":["member"],"externalDocs":{"url":"/data/doc/member/award_instances"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"operationId":"getMemberChartData","tags":["member"],"externalDocs":{"url":"/data/doc/member/chart_data"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","type":"number"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"operationId":"getMember","tags":["member"],"externalDocs":{"url":"/data/doc/member/get"},"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"required":true,"description":"Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"operationId":"getMemberInfo","tags":["member"],"externalDocs":{"url":"/data/doc/member/info"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"operationId":"getMemberParticipationCredits","tags":["member"],"externalDocs":{"url":"/data/doc/member/participation_credits"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getMemberProfile","summary":"Gets a requested user's profile.","tags":["member"],"externalDocs":{"url":"/data/doc/member/profile"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"operationId":"getResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/get"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"operationId":"getResultsEventLog","tags":["results"],"externalDocs":{"url":"/data/doc/results/event_log"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_chart_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"operationId":"getResultsLapData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"operationId":"getResultsSearchHosted","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_hosted"},"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"operationId":"getResultsSearchSeries","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_series"},"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"operationId":"getResultsSeasonResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/season_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"operationId":"getSeasonList","tags":["season"],"externalDocs":{"url":"/data/doc/season/list"},"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"operationId":"getSeasonRaceGuide","tags":["season"],"externalDocs":{"url":"/data/doc/season/race_guide"},"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIds","tags":["season"],"externalDocs":{"url":"/data/doc/season/spectator_subsessionids"},"parameters":[{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"$ref":"#/components/schemas/iracingEventType"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetail","tags":["season"],"externalDocs":{"url":"/data/doc/season/spectator_subsessionids_detail"},"parameters":[{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"$ref":"#/components/schemas/iracingEventType"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"season_ids","schema":{"description":"Seasons to include in the search. Defaults to all. ?season_ids=513,937","type":"array","items":{"type":"number"}},"description":"Seasons to include in the search. Defaults to all. ?season_ids=513,937"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"operationId":"getSeriesAssets","tags":["series"],"externalDocs":{"url":"/data/doc/series/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"operationId":"getSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/past_seasons"},"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"operationId":"getSeriesSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/seasons"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"operationId":"getSeriesSeasonList","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_list"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"operationId":"getSeriesSeasonSchedule","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_schedule"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"operationId":"getSeriesStatsSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/stats_series"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"operationId":"getStatsMemberBests","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_bests"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"operationId":"getStatsMemberCareer","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_career"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"operationId":"getStatsMemberDivision","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_division"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"operationId":"getStatsMemberRecap","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recap"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRaces","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recent_races"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"operationId":"getStatsMemberSummary","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_summary"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearly","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_yearly"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_driver_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_supersession_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_team_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"operationId":"getStatsSeasonTimeTrialStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"operationId":"getStatsSeasonTimeTrialResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_qualify_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"operationId":"getStatsWorldRecords","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/world_records"},"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"operationId":"getTeam","tags":["team"],"externalDocs":{"url":"/data/doc/team/get"},"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"operationId":"getTeamMembership","tags":["team"],"externalDocs":{"url":"/data/doc/team/membership"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResults","tags":["time_attack"],"externalDocs":{"url":"/data/doc/time_attack/member_season_results"},"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"operationId":"getTrackAssets","tags":["track"],"externalDocs":{"url":"/data/doc/track/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"operationId":"getTrack","tags":["track"],"externalDocs":{"url":"/data/doc/track/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false},"iracingServicesDocs":{"description":"An index of available services on the iRacing API.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceDocs"}},"iracingServiceDocs":{"description":"An index of service methods available for the requested service.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}},"iracingServiceMethodDocs":{"description":"An iRacing API Service Method object.","type":"object","properties":{"link":{"type":"string","format":"uri"},"parameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodParametersDocs"}},"expirationSeconds":{"type":"number"}},"required":["link","parameters"],"additionalProperties":false},"iracingServiceMethodParametersDocs":{"description":"An iRacing API Service Method Parameters object.","type":"object","properties":{"type":{"type":"string"},"note":{"type":"string"},"required":{"type":"boolean"}},"required":["type"],"additionalProperties":false},"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"Docs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServicesDocs"}}}},"ServiceDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceDocs"}}}},"ServiceMethodDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file diff --git a/packages/api-schema/src/schema/responses.ts b/packages/api-schema/src/schema/responses.ts index 2664518..cd8e304 100644 --- a/packages/api-schema/src/schema/responses.ts +++ b/packages/api-schema/src/schema/responses.ts @@ -76,6 +76,21 @@ export const IRacingGetCarResponseSchema = z.array( }) ); +export const IRacingGetTrackAssetsResponseSchema = z.record( + z.number(), + z.object({ + track_id: z.number(), + track_map: z.string(), + track_map_layers: z.record(z.string(), z.string()), + }) +); + +export const IRacingGetTrackResponseSchema = z.array( + z.object({ + track_id: z.number(), + }) +); + /** * Types */ @@ -100,3 +115,9 @@ export type IRacingGetCarAssetsResponse = z.infer< typeof IRacingGetCarAssetsResponseSchema >; export type IRacingGetCarResponse = z.infer; +export type IRacingGetTrackAssetsResponse = z.infer< + typeof IRacingGetTrackAssetsResponseSchema +>; +export type IRacingGetTrackResponse = z.infer< + typeof IRacingGetTrackResponseSchema +>; diff --git a/packages/helpers/sync-car-assets/src/cli.ts b/packages/helpers/sync-car-assets/src/cli.ts index ca8b029..1ec4ef2 100644 --- a/packages/helpers/sync-car-assets/src/cli.ts +++ b/packages/helpers/sync-car-assets/src/cli.ts @@ -47,7 +47,7 @@ const program = new Command("sync-iracing-car-assets") const auth = new AuthApi(undefined, undefined, client); const { username, password } = await getIRacingCredentials(); const hashedPassword = await hashPassword(username, password); - const response = await auth.postAuth({ + await auth.postAuth({ post_auth_request: { email: username, password: hashedPassword, diff --git a/packages/helpers/sync-car-assets/src/util.ts b/packages/helpers/sync-car-assets/src/util.ts index af71a2a..0eb8cfd 100644 --- a/packages/helpers/sync-car-assets/src/util.ts +++ b/packages/helpers/sync-car-assets/src/util.ts @@ -2,6 +2,15 @@ import { IracingAPIResponse } from "@iracing-data/api-client"; import assert from "node:assert"; import { access, constants } from "node:fs/promises"; +async function getInquirer() { + try { + const inquirerPath = require.resolve("inquirer"); + return await import(inquirerPath); + } catch (_error) { + return null; + } +} + /** * Checks if a file exists. * @param path the path of the file @@ -37,21 +46,14 @@ export async function getIRacingCredentials(usernameProp?: string) { ? `${process.env.IRACING_PASSWORD}` : undefined; - /** - * Return the username and password if provided via env - */ - if (usernameOption && passwordOption) { - return { usernameOption, passwordOption }; - } - /** * If inquirer is available, prompt the user for their credentials, * else assert the credentials are provided and return them. */ - try { - let { default: inquirer } = require("inquirer"); + const inquirer = await getInquirer(); + if (inquirer) { const { username = usernameOption, password = passwordOption } = - await inquirer.prompt([ + await inquirer.default.prompt([ { type: "input", name: "username", @@ -77,8 +79,7 @@ export async function getIRacingCredentials(usernameProp?: string) { ); return { username, password }; - } catch (error) { - console.error(error); + } else { assert( usernameOption && usernameOption.length > 0, "Please provide username via environment variable (IRACING_USERNAME)." diff --git a/packages/helpers/sync-track-assets/package.json b/packages/helpers/sync-track-assets/package.json index 0419b9f..68056ae 100644 --- a/packages/helpers/sync-track-assets/package.json +++ b/packages/helpers/sync-track-assets/package.json @@ -9,9 +9,14 @@ "build": "tsc --build tsconfig.build.json" }, "dependencies": { - "@iracing-data/api": "workspace:*", + "@commander-js/extra-typings": "^13.1.0", + "@iracing-data/api-client": "workspace:*", + "@iracing-data/api-schema": "workspace:*", + "axios": "^1.7.9", + "axios-cookiejar-support": "^6.0.4", "commander": "^14.0.0", - "dotenv": "16.4.7" + "dotenv": "16.4.7", + "tough-cookie": "^5.1.1" }, "peerDependencies": { "inquirer": "^12.4.1" diff --git a/packages/helpers/sync-track-assets/src/cli.ts b/packages/helpers/sync-track-assets/src/cli.ts index 38ca6c4..051f83a 100644 --- a/packages/helpers/sync-track-assets/src/cli.ts +++ b/packages/helpers/sync-track-assets/src/cli.ts @@ -1,8 +1,27 @@ #!/usr/bin/env node +import crypto from "node:crypto"; import { Command } from "@commander-js/extra-typings"; +import { TrackApi, AuthApi } from "@iracing-data/api-client"; +import axios from "axios"; +import { wrapper } from "axios-cookiejar-support"; +import { CookieJar } from "tough-cookie"; +import * as dotenv from "dotenv"; +import { getIRacingCredentials } from "./util.js"; import { syncTrackAssets } from "./"; +dotenv.config(); + +/** + * Compute the Base64‑encoded SHA‑256 hash of (password + email.toLowerCase()). + */ +export async function hashPassword(email: string, password: string) { + return crypto + .createHash("sha256") + .update(password + email.toLowerCase()) + .digest("base64"); +} + const program = new Command("sync-iracing-track-assets") .description("Downloads the latest track SVGs.") .requiredOption("-o, --out-dir ", "Output directory") @@ -15,6 +34,29 @@ const program = new Command("sync-iracing-track-assets") .action(async (_, command) => { console.log("Downloading track assets..."); + // Create an axios instance capable of handling cookies. + const client = wrapper( + axios.create({ + baseURL: "https://members-ng.iracing.com/", + withCredentials: true, + jar: new CookieJar(), + headers: { + "Content-Type": "application/json", + }, + }) + ); + + // Use the axios instance to authenticate + const auth = new AuthApi(undefined, undefined, client); + const { username, password } = await getIRacingCredentials(); + const hashedPassword = await hashPassword(username, password); + await auth.postAuth({ + post_auth_request: { + email: username, + password: hashedPassword, + }, + }); + const { outDir, writeFullAssets, @@ -25,15 +67,18 @@ const program = new Command("sync-iracing-track-assets") force, } = command.optsWithGlobals(); - await syncTrackAssets({ - outputDir: outDir, - writeFullAssets, - writeFullInfo, - skipTrackAssets, - skipTrackInfo, - force, - includeSVGs: includeSvgs, - }); + await syncTrackAssets( + { + outputDir: outDir, + writeFullAssets, + writeFullInfo, + skipTrackAssets, + skipTrackInfo, + force, + includeSVGs: includeSvgs, + }, + new TrackApi(undefined, undefined, client) + ); console.log("Done!"); }); diff --git a/packages/helpers/sync-track-assets/src/index.ts b/packages/helpers/sync-track-assets/src/index.ts index 5c002c2..b0c19c7 100644 --- a/packages/helpers/sync-track-assets/src/index.ts +++ b/packages/helpers/sync-track-assets/src/index.ts @@ -1,23 +1,15 @@ import { writeFile, mkdir } from "node:fs/promises"; import path from "node:path"; -import { IRacingAPISessionClient, hashPassword } from "@iracing-data/api"; import * as dotenv from "dotenv"; -import { exists, getIRacingCredentials } from "./util"; +import { exists, fetchAPIResponseData, getIRacingCredentials } from "./util"; +import { TrackApi } from "@iracing-data/api-client"; +import { + IRacingGetTrackAssetsResponse, + IRacingGetTrackResponse, +} from "@iracing-data/api-schema"; dotenv.config(); -export interface TrackInfo { - track_id: number; -} - -export interface TrackAsset { - track_id: string; - track_map: string; - track_map_layers: Record; -} - -export type TrackAssetIndex = Record; - export interface SyncTrackAssetsOptions { /** * The directory to output the SVG files to. @@ -87,20 +79,8 @@ export async function syncTrackAssets( skipTrackInfo = false, includeSVGs = false, }: SyncTrackAssetsOptions, - client: IRacingAPISessionClient = new IRacingAPISessionClient() + client: TrackApi = new TrackApi() ) { - /** - * Authenticate with the iRacing API if no credentials are found. - */ - const needAuth = client.whoami() === null; - if (needAuth) { - console.log("No credentials found. Authenticating with iRacing API."); - const { username, password } = await getIRacingCredentials(usernameProp); - const hashedPassword = await hashPassword(username, password); - await client.authenticate({ username, password: hashedPassword }); - console.log("Authenticated with user:", client.whoami()); - } - /** * Create the output directory if it doesn't exist. */ @@ -113,9 +93,16 @@ export async function syncTrackAssets( /** * Get the JSON data for the track assets and track info from the API. */ - const [tracks, trackInfo] = await Promise.all< - [Promise, Promise] - >([client.trackAssets(), client.trackGet()]); + const [tracks, trackInfo] = await Promise.all([ + client + .getTrackAssets() + .then((r) => r.data) + .then(fetchAPIResponseData), + client + .getTrack() + .then((r) => r.data) + .then(fetchAPIResponseData), + ]); /** * Write the data if requested. @@ -134,7 +121,7 @@ export async function syncTrackAssets( console.log("Downloading assets for", Object.keys(tracks).length, "tracks."); - for (const [trackId, asset] of Object.entries(tracks)) { + for (const [trackId, asset] of Object.entries(tracks)) { const info = trackInfo.find((t) => t.track_id === +trackId); const trackDir = path.join(outputDir, trackId); const assetPath = path.join(trackDir, "assets.json"); @@ -175,8 +162,8 @@ export async function syncTrackAssets( } else { // Get the asset from the URL and write to the file. console.log("\tDownloading layer:", layer, "from", layerUrl); - const response = await client.client.get(layerUrl); - const svg = response.data; + const response = await fetch(layerUrl); + const svg = await response.text(); await writeFile(layerPath, svg, "utf8"); } }) diff --git a/packages/helpers/sync-track-assets/src/util.ts b/packages/helpers/sync-track-assets/src/util.ts index 4a4a423..954c6f9 100644 --- a/packages/helpers/sync-track-assets/src/util.ts +++ b/packages/helpers/sync-track-assets/src/util.ts @@ -1,3 +1,4 @@ +import { IracingAPIResponse } from "@iracing-data/api-client"; import assert from "node:assert"; import { access, constants } from "node:fs/promises"; @@ -34,8 +35,8 @@ export async function getIRacingCredentials(usernameProp?: string) { * The provided username, or the username from the environment variable, or undefined. */ const usernameOption = - usernameProp ?? process.env.IRACING_USERNAME - ? `${process.env.IRACING_USERNAME}` + (usernameProp ?? process.env.IRACING_USERNAME) + ? `${usernameProp ?? process.env.IRACING_USERNAME}` : undefined; /** @@ -48,7 +49,7 @@ export async function getIRacingCredentials(usernameProp?: string) { const inquirer = await getInquirer(); if (inquirer) { const { username = usernameOption, password = passwordOption } = - await inquirer.prompt([ + await inquirer.default.prompt([ { type: "input", name: "username", @@ -87,3 +88,16 @@ export async function getIRacingCredentials(usernameProp?: string) { return { username: usernameOption, password: passwordOption }; } } + +export async function fetchAPIResponseData({ + expires, + link, +}: IracingAPIResponse) { + const expirationDate = new Date(expires); + if (expirationDate.getTime() < Date.now()) { + throw new Error("Data is expired!"); + } + + const data = await fetch(link); + return (await data.json()) as T; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 729c8b2..348f2a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -507,9 +507,21 @@ importers: packages/helpers/sync-track-assets: dependencies: - '@iracing-data/api': + '@commander-js/extra-typings': + specifier: ^13.1.0 + version: 13.1.0(commander@14.0.0) + '@iracing-data/api-client': specifier: workspace:* - version: link:../../api + version: link:../../api-client + '@iracing-data/api-schema': + specifier: workspace:* + version: link:../../api-schema + axios: + specifier: ^1.7.9 + version: 1.13.2 + axios-cookiejar-support: + specifier: ^6.0.4 + version: 6.0.4(axios@1.13.2)(tough-cookie@5.1.1) commander: specifier: ^14.0.0 version: 14.0.0 @@ -519,10 +531,9 @@ importers: inquirer: specifier: ^12.4.1 version: 12.4.2(@types/node@24.3.1) - devDependencies: - '@commander-js/extra-typings': - specifier: ^13.1.0 - version: 13.1.0(commander@14.0.0) + tough-cookie: + specifier: ^5.1.1 + version: 5.1.1 packages/iracing-telemetry-grpc-node: dependencies: From 4a1626d9372b0598be51cd25314e8ba51c6b6326 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Sun, 16 Nov 2025 13:34:19 -0500 Subject: [PATCH 26/28] Remove prompting --- packages/helpers/sync-car-assets/package.json | 11 +--- packages/helpers/sync-car-assets/src/util.ts | 65 +++---------------- .../helpers/sync-track-assets/package.json | 9 --- .../helpers/sync-track-assets/src/util.ts | 59 +++-------------- 4 files changed, 20 insertions(+), 124 deletions(-) diff --git a/packages/helpers/sync-car-assets/package.json b/packages/helpers/sync-car-assets/package.json index 7345e91..2fdcd3a 100644 --- a/packages/helpers/sync-car-assets/package.json +++ b/packages/helpers/sync-car-assets/package.json @@ -23,15 +23,6 @@ "tough-cookie": "^5.1.1" }, "devDependencies": { - "esbuild": "^0.25.9", - "inquirer": "^12.9.4" - }, - "peerDependencies": { - "inquirer": "^12.4.1" - }, - "peerDependenciesMeta": { - "inquirer": { - "optional": true - } + "esbuild": "^0.25.9" } } \ No newline at end of file diff --git a/packages/helpers/sync-car-assets/src/util.ts b/packages/helpers/sync-car-assets/src/util.ts index 0eb8cfd..63f4d71 100644 --- a/packages/helpers/sync-car-assets/src/util.ts +++ b/packages/helpers/sync-car-assets/src/util.ts @@ -2,15 +2,6 @@ import { IracingAPIResponse } from "@iracing-data/api-client"; import assert from "node:assert"; import { access, constants } from "node:fs/promises"; -async function getInquirer() { - try { - const inquirerPath = require.resolve("inquirer"); - return await import(inquirerPath); - } catch (_error) { - return null; - } -} - /** * Checks if a file exists. * @param path the path of the file @@ -26,8 +17,7 @@ export const exists = async (path: string) => { }; /** - * Attempts to read credentials from the environment variables. If not provided, - * prompts the user to enter them. + * Attempts to read credentials from the environment variables. * @returns The parsed credentials. */ export async function getIRacingCredentials(usernameProp?: string) { @@ -46,51 +36,16 @@ export async function getIRacingCredentials(usernameProp?: string) { ? `${process.env.IRACING_PASSWORD}` : undefined; - /** - * If inquirer is available, prompt the user for their credentials, - * else assert the credentials are provided and return them. - */ - const inquirer = await getInquirer(); - if (inquirer) { - const { username = usernameOption, password = passwordOption } = - await inquirer.default.prompt([ - { - type: "input", - name: "username", - message: "Enter your username:", - when: () => !usernameOption, - }, - { - type: "password", - name: "password", - message: "Enter your password:", - mask: "*", - when: () => !passwordOption, - }, - ]); - - assert( - username && username.length > 0, - "Could not find username via environment variable (IRACING_USERNAME), please update your env or enter when prompted." - ); - assert( - password && password.length > 0, - "Could not find password via environment variable (IRACING_PASSWORD), please update your env or enter when prompted." - ); + assert( + usernameOption && usernameOption.length > 0, + "Please provide username via environment variable (IRACING_USERNAME)." + ); + assert( + passwordOption && passwordOption.length > 0, + "Please provider password via environment variable (IRACING_PASSWORD)." + ); - return { username, password }; - } else { - assert( - usernameOption && usernameOption.length > 0, - "Please provide username via environment variable (IRACING_USERNAME)." - ); - assert( - passwordOption && passwordOption.length > 0, - "Please provider password via environment variable (IRACING_PASSWORD)." - ); - - return { username: usernameOption, password: passwordOption }; - } + return { username: usernameOption, password: passwordOption }; } export async function fetchAPIResponseData({ diff --git a/packages/helpers/sync-track-assets/package.json b/packages/helpers/sync-track-assets/package.json index 68056ae..70345ff 100644 --- a/packages/helpers/sync-track-assets/package.json +++ b/packages/helpers/sync-track-assets/package.json @@ -9,7 +9,6 @@ "build": "tsc --build tsconfig.build.json" }, "dependencies": { - "@commander-js/extra-typings": "^13.1.0", "@iracing-data/api-client": "workspace:*", "@iracing-data/api-schema": "workspace:*", "axios": "^1.7.9", @@ -18,14 +17,6 @@ "dotenv": "16.4.7", "tough-cookie": "^5.1.1" }, - "peerDependencies": { - "inquirer": "^12.4.1" - }, - "peerDependenciesMeta": { - "inquirer": { - "optional": true - } - }, "devDependencies": { "@commander-js/extra-typings": "^13.1.0" } diff --git a/packages/helpers/sync-track-assets/src/util.ts b/packages/helpers/sync-track-assets/src/util.ts index 954c6f9..b37501b 100644 --- a/packages/helpers/sync-track-assets/src/util.ts +++ b/packages/helpers/sync-track-assets/src/util.ts @@ -1,16 +1,6 @@ import { IracingAPIResponse } from "@iracing-data/api-client"; import assert from "node:assert"; import { access, constants } from "node:fs/promises"; - -async function getInquirer() { - try { - const inquirerPath = require.resolve("inquirer"); - return await import(inquirerPath); - } catch (_error) { - return null; - } -} - /** * Checks if a file exists. * @param path the path of the file @@ -46,47 +36,16 @@ export async function getIRacingCredentials(usernameProp?: string) { ? `${process.env.IRACING_PASSWORD}` : undefined; - const inquirer = await getInquirer(); - if (inquirer) { - const { username = usernameOption, password = passwordOption } = - await inquirer.default.prompt([ - { - type: "input", - name: "username", - message: "Enter your username:", - when: () => !usernameOption, - }, - { - type: "password", - name: "password", - message: "Enter your password:", - mask: "*", - when: () => !passwordOption, - }, - ]); - - assert( - username && username.length > 0, - "Could not find username via environment variable (IRACING_USERNAME), please update your env or enter when prompted." - ); - assert( - password && password.length > 0, - "Could not find password via environment variable (IRACING_PASSWORD), please update your env or enter when prompted." - ); + assert( + usernameOption && usernameOption.length > 0, + "Please provide username via environment variable (IRACING_USERNAME)." + ); + assert( + passwordOption && passwordOption.length > 0, + "Please provider password via environment variable (IRACING_PASSWORD)." + ); - return { username, password }; - } else { - assert( - usernameOption && usernameOption.length > 0, - "Please provide username via environment variable (IRACING_USERNAME)." - ); - assert( - passwordOption && passwordOption.length > 0, - "Please provider password via environment variable (IRACING_PASSWORD)." - ); - - return { username: usernameOption, password: passwordOption }; - } + return { username: usernameOption, password: passwordOption }; } export async function fetchAPIResponseData({ From 825b6407629f7d90e0246a7a0c5b6ad6d9784c16 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Mon, 17 Nov 2025 11:19:59 -0500 Subject: [PATCH 27/28] Refactor the API into sub-workspaces --- .../iracing-proxy-api-example/.env.template | 3 +- .../iracing-proxy-api-example/package.json | 2 +- .../iracing-proxy-api-example/src/config.ts | 3 +- .../iracing-proxy-api-example/src/index.ts | 80 +- .../src/middleware.ts | 3 +- .../src/oauth-client.ts | 5 +- openapi/iracing-oauth.json | 1 + openapi/iracing.json | 1 + .../openapitools.json => openapitools.json | 0 package.json | 25 +- packages/api-client/openapi/openapi.json | 1 - packages/api-client/package.json | 18 - packages/api-client/src/client/docs/CarApi.md | 237 - .../src/client/docs/ConstantsApi.md | 331 - .../src/client/docs/DriverStatsApi.md | 158 - .../src/client/docs/IracingChartType.md | 13 - .../api-client/src/client/docs/LookupApi.md | 522 -- .../api-client/src/client/docs/TeamApi.md | 246 - .../src/client/docs/TimeAttackApi.md | 151 - .../api-client/src/client/docs/TrackApi.md | 236 - packages/api-client/src/index.ts | 1 - packages/api-client/tsconfig.build.json | 14 - packages/api-client/tsconfig.json | 9 - packages/api/.npmignore | 5 - packages/api/README.md | 53 - .../client => api/client/axios}/.gitignore | 0 .../client => api/client/axios}/.npmignore | 0 .../client/axios}/.openapi-generator-ignore | 0 .../client/axios}/.openapi-generator/FILES | 0 .../client/axios}/.openapi-generator/VERSION | 0 .../src/client => api/client/axios}/README.md | 86 +- .../src/client => api/client/axios}/api.ts | 7047 +++-------------- .../src/client => api/client/axios}/base.ts | 0 .../src/client => api/client/axios}/common.ts | 0 .../client/axios}/configuration.ts | 0 .../client/axios}/docs/AuthApi.md | 2 +- packages/api/client/axios/docs/CarApi.md | 102 + packages/api/client/axios/docs/CarclassApi.md | 54 + .../client/axios/docs/ConstantsApi.md} | 59 +- .../client/axios}/docs/DocApi.md | 166 +- .../api/client/axios/docs/DriverStatsApi.md | 61 + .../client/axios}/docs/ErrorResponse.md | 2 +- packages/api/client/axios/docs/HostedApi.md | 110 + .../client/axios}/docs/IracingAPIResponse.md | 2 +- .../client/axios}/docs/IracingCategory.md | 0 .../client/axios}/docs/IracingDivision.md | 0 .../client/axios}/docs/IracingEventType.md | 0 .../axios}/docs/IracingServiceMethodDocs.md | 2 +- .../IracingServiceMethodParametersDocs.md | 2 +- .../client/axios}/docs/LeagueApi.md | 468 +- .../client/axios/docs/LookupApi.md} | 113 +- .../client/axios}/docs/MemberApi.md | 374 +- .../client/axios}/docs/PostAuthRequest.md | 2 +- .../client/axios}/docs/ResultsApi.md | 374 +- .../client/axios}/docs/SeasonApi.md | 233 +- .../client/axios}/docs/SeriesApi.md | 374 +- .../client/axios}/docs/StatsApi.md | 1033 +-- packages/api/client/axios/docs/TeamApi.md | 111 + .../api/client/axios/docs/TimeAttackApi.md | 61 + packages/api/client/axios/docs/TrackApi.md | 101 + .../client => api/client/axios}/git_push.sh | 0 .../src/client => api/client/axios}/index.ts | 0 .../client => api/client/axios}/package.json | 6 +- .../client => api/client/axios}/tsconfig.json | 0 packages/api/client/fetch/.gitignore | 4 + packages/api/client/fetch/.npmignore | 1 + .../client/fetch/.openapi-generator-ignore | 23 + .../api/client/fetch/.openapi-generator/FILES | 59 + .../client/fetch/.openapi-generator/VERSION | 1 + packages/api/client/fetch/README.md | 288 + packages/api/client/fetch/docs/AuthApi.md | 73 + packages/api/client/fetch/docs/CarApi.md | 140 + packages/api/client/fetch/docs/CarclassApi.md | 73 + .../api/client/fetch/docs/ConstantsApi.md | 209 + packages/api/client/fetch/docs/DocApi.md | 5245 ++++++++++++ .../api/client/fetch/docs/DriverStatsApi.md | 81 + .../api/client/fetch/docs/ErrorResponse.md | 38 + packages/api/client/fetch/docs/HostedApi.md | 150 + .../client/fetch/docs/IracingAPIResponse.md | 37 + .../api/client/fetch/docs/IracingCategory.md | 33 + .../api/client/fetch/docs/IracingDivision.md | 33 + .../api/client/fetch/docs/IracingEventType.md | 33 + .../fetch/docs/IracingServiceMethodDocs.md | 39 + .../IracingServiceMethodParametersDocs.md | 39 + packages/api/client/fetch/docs/LeagueApi.md | 731 ++ packages/api/client/fetch/docs/LookupApi.md | 344 + packages/api/client/fetch/docs/MemberApi.md | 515 ++ .../api/client/fetch/docs/PostAuthRequest.md | 36 + packages/api/client/fetch/docs/ResultsApi.md | 615 ++ packages/api/client/fetch/docs/SeasonApi.md | 309 + packages/api/client/fetch/docs/SeriesApi.md | 507 ++ packages/api/client/fetch/docs/StatsApi.md | 1102 +++ packages/api/client/fetch/docs/TeamApi.md | 149 + .../api/client/fetch/docs/TimeAttackApi.md | 81 + packages/api/client/fetch/docs/TrackApi.md | 138 + packages/api/client/fetch/package.json | 19 + packages/api/client/fetch/src/apis/AuthApi.ts | 71 + packages/api/client/fetch/src/apis/CarApi.ts | 105 + .../api/client/fetch/src/apis/CarclassApi.ts | 70 + .../api/client/fetch/src/apis/ConstantsApi.ts | 144 + packages/api/client/fetch/src/apis/DocApi.ts | 2953 +++++++ .../client/fetch/src/apis/DriverStatsApi.ts | 83 + .../api/client/fetch/src/apis/HostedApi.ts | 115 + .../api/client/fetch/src/apis/LeagueApi.ts | 586 ++ .../api/client/fetch/src/apis/LookupApi.ts | 228 + .../api/client/fetch/src/apis/MemberApi.ts | 368 + .../api/client/fetch/src/apis/ResultsApi.ts | 553 ++ .../api/client/fetch/src/apis/SeasonApi.ts | 237 + .../api/client/fetch/src/apis/SeriesApi.ts | 344 + .../api/client/fetch/src/apis/StatsApi.ts | 903 +++ packages/api/client/fetch/src/apis/TeamApi.ts | 123 + .../client/fetch/src/apis/TimeAttackApi.ts | 83 + .../api/client/fetch/src/apis/TrackApi.ts | 103 + packages/api/client/fetch/src/apis/index.ts | 19 + packages/api/client/fetch/src/index.ts | 5 + .../client/fetch/src/models/ErrorResponse.ts | 82 + .../fetch/src/models/IracingAPIResponse.ts | 75 + .../fetch/src/models/IracingCategory.ts | 75 + .../fetch/src/models/IracingDivision.ts | 95 + .../fetch/src/models/IracingEventType.ts | 67 + .../src/models/IracingServiceMethodDocs.ts | 91 + .../IracingServiceMethodParametersDocs.ts | 82 + .../fetch/src/models/PostAuthRequest.ts | 75 + packages/api/client/fetch/src/models/index.ts | 10 + packages/api/client/fetch/src/runtime.ts | 432 + packages/api/client/fetch/tsconfig.json | 20 + packages/api/doc/structure.json | 994 --- packages/api/package.json | 14 - .../{api-router => api/router}/package.json | 2 +- .../{api-router => api/router}/src/index.ts | 3 +- .../router}/src/middleware.ts | 7 +- .../router}/src/routes/data/car-class.ts | 3 +- .../router}/src/routes/data/car.ts | 6 +- .../router}/src/routes/data/constants.ts | 9 +- .../router}/src/routes/data/doc.ts | 251 +- .../router}/src/routes/data/driver-stats.ts | 4 +- .../router}/src/routes/data/hosted.ts | 6 +- .../router}/src/routes/data/index.ts | 0 .../router}/src/routes/data/league.ts | 28 +- .../router}/src/routes/data/lookup.ts | 15 +- .../router}/src/routes/data/member.ts | 21 +- .../router}/src/routes/data/results.ts | 67 +- .../router}/src/routes/data/season.ts | 19 +- .../router}/src/routes/data/series.ts | 21 +- .../router}/src/routes/data/stats.ts | 44 +- .../router}/src/routes/data/team.ts | 6 +- .../router}/src/routes/data/time-attack.ts | 4 +- .../router}/src/routes/data/track.ts | 6 +- .../router}/src/routes/index.ts | 0 .../router}/src/routes/utils.ts | 0 .../router}/tsconfig.build.json | 2 +- .../{api-router => api/router}/tsconfig.json | 0 packages/{api-schema => api/schema}/README.md | 0 .../{api-schema => api/schema}/package.json | 0 .../{api-schema => api/schema}/src/index.ts | 0 .../schema}/src/schema/index.ts | 0 .../schema}/src/schema/parameters.ts | 0 .../schema}/src/schema/primitives.ts | 0 .../schema}/src/schema/responses.ts | 0 .../schema}/tsconfig.build.json | 2 +- .../{api-schema => api/schema}/tsconfig.json | 0 packages/api/src/api/README.md | 59 - packages/api/src/api/auth/index.ts | 32 - packages/api/src/api/data/car-class/index.ts | 9 - packages/api/src/api/data/car/index.ts | 17 - packages/api/src/api/data/constants/index.ts | 17 - .../api/src/api/data/driver-stats/index.ts | 15 - packages/api/src/api/data/hosted/index.ts | 26 - packages/api/src/api/data/index.ts | 117 - packages/api/src/api/data/league/index.ts | 161 - packages/api/src/api/data/lookup/index.ts | 27 - packages/api/src/api/data/member/index.ts | 74 - packages/api/src/api/data/results/index.ts | 190 - packages/api/src/api/data/season/index.ts | 57 - packages/api/src/api/data/series/index.ts | 68 - packages/api/src/api/data/stats/index.ts | 251 - packages/api/src/api/data/team/index.ts | 21 - .../api/src/api/data/time-attack/index.ts | 14 - packages/api/src/api/data/track/index.ts | 17 - packages/api/src/api/index.ts | 30 - packages/api/src/api/types.ts | 114 - packages/api/src/client.ts | 538 -- packages/api/src/index.ts | 4 - packages/api/src/types.ts | 25 - packages/api/src/util.ts | 40 - packages/api/tsconfig.build.json | 12 - packages/cli/.npmignore | 4 - packages/cli/README.md | 52 - packages/cli/bin/index.js | 743 -- packages/cli/bin/storage.js | 83 - packages/cli/bin/util.js | 21 - packages/cli/package.json | 27 - packages/cli/src/index.ts | 892 --- packages/cli/src/storage.ts | 98 - packages/cli/src/util.ts | 14 - packages/cli/tsconfig.build.json | 15 - packages/cli/tsconfig.json | 9 - .../api-schema-to-openapi/src/index.ts | 164 +- .../oauth-schema-to-openapi/package.json | 1 + .../oauth-schema-to-openapi/src/index.ts | 40 +- packages/oauth/client/package.json | 1 + packages/oauth/client/src/client.ts | 10 +- packages/oauth/client/src/constants.ts | 3 - packages/oauth/client/src/index.ts | 1 - packages/oauth/client/src/schema/oauth.ts | 71 +- packages/oauth/router/README.md | 11 + packages/oauth/router/openapi/spec.json | 521 ++ packages/oauth/router/openapitools.json | 7 + packages/oauth/router/package.json | 17 + .../src/client/.openapi-generator-ignore | 23 + .../src/client/.openapi-generator/FILES | 15 + .../src/client/.openapi-generator/VERSION | 1 + .../router/src/client/apis/DefaultApi.ts | 261 + .../oauth/router/src/client/apis/index.ts | 3 + .../router/src/client/docs/DefaultApi.md | 339 + .../router/src/client/docs/ErrorResponse.md | 38 + .../docs/IracingProfileGet200Response.md | 36 + .../src/client/docs/SessionsGet200Response.md | 34 + .../SessionsGet200ResponseSessionsInner.md | 86 + packages/oauth/router/src/client/index.ts | 5 + .../router/src/client/models/ErrorResponse.ts | 82 + .../models/IracingProfileGet200Response.ts | 75 + .../client/models/SessionsGet200Response.ts | 74 + .../SessionsGet200ResponseSessionsInner.ts | 300 + .../oauth/router/src/client/models/index.ts | 6 + packages/oauth/router/src/client/runtime.ts | 432 + packages/oauth/router/src/index.ts | 166 + packages/oauth/router/src/middleware.ts | 61 + packages/oauth/router/tsconfig.build.json | 12 + packages/{api => oauth/router}/tsconfig.json | 0 packages/oauth/schema/src/schema.ts | 69 +- pnpm-lock.yaml | 743 +- pnpm-workspace.yaml | 2 + 233 files changed, 24548 insertions(+), 16994 deletions(-) create mode 100644 openapi/iracing-oauth.json create mode 100644 openapi/iracing.json rename packages/api-client/openapitools.json => openapitools.json (100%) delete mode 100644 packages/api-client/openapi/openapi.json delete mode 100644 packages/api-client/package.json delete mode 100644 packages/api-client/src/client/docs/CarApi.md delete mode 100644 packages/api-client/src/client/docs/ConstantsApi.md delete mode 100644 packages/api-client/src/client/docs/DriverStatsApi.md delete mode 100644 packages/api-client/src/client/docs/IracingChartType.md delete mode 100644 packages/api-client/src/client/docs/LookupApi.md delete mode 100644 packages/api-client/src/client/docs/TeamApi.md delete mode 100644 packages/api-client/src/client/docs/TimeAttackApi.md delete mode 100644 packages/api-client/src/client/docs/TrackApi.md delete mode 100644 packages/api-client/src/index.ts delete mode 100644 packages/api-client/tsconfig.build.json delete mode 100644 packages/api-client/tsconfig.json delete mode 100644 packages/api/.npmignore delete mode 100644 packages/api/README.md rename packages/{api-client/src/client => api/client/axios}/.gitignore (100%) rename packages/{api-client/src/client => api/client/axios}/.npmignore (100%) rename packages/{api-client/src/client => api/client/axios}/.openapi-generator-ignore (100%) rename packages/{api-client/src/client => api/client/axios}/.openapi-generator/FILES (100%) rename packages/{api-client/src/client => api/client/axios}/.openapi-generator/VERSION (100%) rename packages/{api-client/src/client => api/client/axios}/README.md (65%) rename packages/{api-client/src/client => api/client/axios}/api.ts (69%) rename packages/{api-client/src/client => api/client/axios}/base.ts (100%) rename packages/{api-client/src/client => api/client/axios}/common.ts (100%) rename packages/{api-client/src/client => api/client/axios}/configuration.ts (100%) rename packages/{api-client/src/client => api/client/axios}/docs/AuthApi.md (96%) create mode 100644 packages/api/client/axios/docs/CarApi.md create mode 100644 packages/api/client/axios/docs/CarclassApi.md rename packages/{api-client/src/client/docs/CarclassApi.md => api/client/axios/docs/ConstantsApi.md} (58%) rename packages/{api-client/src/client => api/client/axios}/docs/DocApi.md (96%) create mode 100644 packages/api/client/axios/docs/DriverStatsApi.md rename packages/{api-client/src/client => api/client/axios}/docs/ErrorResponse.md (89%) create mode 100644 packages/api/client/axios/docs/HostedApi.md rename packages/{api-client/src/client => api/client/axios}/docs/IracingAPIResponse.md (88%) rename packages/{api-client/src/client => api/client/axios}/docs/IracingCategory.md (100%) rename packages/{api-client/src/client => api/client/axios}/docs/IracingDivision.md (100%) rename packages/{api-client/src/client => api/client/axios}/docs/IracingEventType.md (100%) rename packages/{api-client/src/client => api/client/axios}/docs/IracingServiceMethodDocs.md (98%) rename packages/{api-client/src/client => api/client/axios}/docs/IracingServiceMethodParametersDocs.md (97%) rename packages/{api-client/src/client => api/client/axios}/docs/LeagueApi.md (63%) rename packages/{api-client/src/client/docs/HostedApi.md => api/client/axios/docs/LookupApi.md} (59%) rename packages/{api-client/src/client => api/client/axios}/docs/MemberApi.md (55%) rename packages/{api-client/src/client => api/client/axios}/docs/PostAuthRequest.md (88%) rename packages/{api-client/src/client => api/client/axios}/docs/ResultsApi.md (69%) rename packages/{api-client/src/client => api/client/axios}/docs/SeasonApi.md (57%) rename packages/{api-client/src/client => api/client/axios}/docs/SeriesApi.md (54%) rename packages/{api-client/src/client => api/client/axios}/docs/StatsApi.md (60%) create mode 100644 packages/api/client/axios/docs/TeamApi.md create mode 100644 packages/api/client/axios/docs/TimeAttackApi.md create mode 100644 packages/api/client/axios/docs/TrackApi.md rename packages/{api-client/src/client => api/client/axios}/git_push.sh (100%) rename packages/{api-client/src/client => api/client/axios}/index.ts (100%) rename packages/{api-client/src/client => api/client/axios}/package.json (79%) rename packages/{api-client/src/client => api/client/axios}/tsconfig.json (100%) create mode 100644 packages/api/client/fetch/.gitignore create mode 100644 packages/api/client/fetch/.npmignore create mode 100644 packages/api/client/fetch/.openapi-generator-ignore create mode 100644 packages/api/client/fetch/.openapi-generator/FILES create mode 100644 packages/api/client/fetch/.openapi-generator/VERSION create mode 100644 packages/api/client/fetch/README.md create mode 100644 packages/api/client/fetch/docs/AuthApi.md create mode 100644 packages/api/client/fetch/docs/CarApi.md create mode 100644 packages/api/client/fetch/docs/CarclassApi.md create mode 100644 packages/api/client/fetch/docs/ConstantsApi.md create mode 100644 packages/api/client/fetch/docs/DocApi.md create mode 100644 packages/api/client/fetch/docs/DriverStatsApi.md create mode 100644 packages/api/client/fetch/docs/ErrorResponse.md create mode 100644 packages/api/client/fetch/docs/HostedApi.md create mode 100644 packages/api/client/fetch/docs/IracingAPIResponse.md create mode 100644 packages/api/client/fetch/docs/IracingCategory.md create mode 100644 packages/api/client/fetch/docs/IracingDivision.md create mode 100644 packages/api/client/fetch/docs/IracingEventType.md create mode 100644 packages/api/client/fetch/docs/IracingServiceMethodDocs.md create mode 100644 packages/api/client/fetch/docs/IracingServiceMethodParametersDocs.md create mode 100644 packages/api/client/fetch/docs/LeagueApi.md create mode 100644 packages/api/client/fetch/docs/LookupApi.md create mode 100644 packages/api/client/fetch/docs/MemberApi.md create mode 100644 packages/api/client/fetch/docs/PostAuthRequest.md create mode 100644 packages/api/client/fetch/docs/ResultsApi.md create mode 100644 packages/api/client/fetch/docs/SeasonApi.md create mode 100644 packages/api/client/fetch/docs/SeriesApi.md create mode 100644 packages/api/client/fetch/docs/StatsApi.md create mode 100644 packages/api/client/fetch/docs/TeamApi.md create mode 100644 packages/api/client/fetch/docs/TimeAttackApi.md create mode 100644 packages/api/client/fetch/docs/TrackApi.md create mode 100644 packages/api/client/fetch/package.json create mode 100644 packages/api/client/fetch/src/apis/AuthApi.ts create mode 100644 packages/api/client/fetch/src/apis/CarApi.ts create mode 100644 packages/api/client/fetch/src/apis/CarclassApi.ts create mode 100644 packages/api/client/fetch/src/apis/ConstantsApi.ts create mode 100644 packages/api/client/fetch/src/apis/DocApi.ts create mode 100644 packages/api/client/fetch/src/apis/DriverStatsApi.ts create mode 100644 packages/api/client/fetch/src/apis/HostedApi.ts create mode 100644 packages/api/client/fetch/src/apis/LeagueApi.ts create mode 100644 packages/api/client/fetch/src/apis/LookupApi.ts create mode 100644 packages/api/client/fetch/src/apis/MemberApi.ts create mode 100644 packages/api/client/fetch/src/apis/ResultsApi.ts create mode 100644 packages/api/client/fetch/src/apis/SeasonApi.ts create mode 100644 packages/api/client/fetch/src/apis/SeriesApi.ts create mode 100644 packages/api/client/fetch/src/apis/StatsApi.ts create mode 100644 packages/api/client/fetch/src/apis/TeamApi.ts create mode 100644 packages/api/client/fetch/src/apis/TimeAttackApi.ts create mode 100644 packages/api/client/fetch/src/apis/TrackApi.ts create mode 100644 packages/api/client/fetch/src/apis/index.ts create mode 100644 packages/api/client/fetch/src/index.ts create mode 100644 packages/api/client/fetch/src/models/ErrorResponse.ts create mode 100644 packages/api/client/fetch/src/models/IracingAPIResponse.ts create mode 100644 packages/api/client/fetch/src/models/IracingCategory.ts create mode 100644 packages/api/client/fetch/src/models/IracingDivision.ts create mode 100644 packages/api/client/fetch/src/models/IracingEventType.ts create mode 100644 packages/api/client/fetch/src/models/IracingServiceMethodDocs.ts create mode 100644 packages/api/client/fetch/src/models/IracingServiceMethodParametersDocs.ts create mode 100644 packages/api/client/fetch/src/models/PostAuthRequest.ts create mode 100644 packages/api/client/fetch/src/models/index.ts create mode 100644 packages/api/client/fetch/src/runtime.ts create mode 100644 packages/api/client/fetch/tsconfig.json delete mode 100644 packages/api/doc/structure.json delete mode 100644 packages/api/package.json rename packages/{api-router => api/router}/package.json (86%) rename packages/{api-router => api/router}/src/index.ts (77%) rename packages/{api-router => api/router}/src/middleware.ts (94%) rename packages/{api-router => api/router}/src/routes/data/car-class.ts (71%) rename packages/{api-router => api/router}/src/routes/data/car.ts (66%) rename packages/{api-router => api/router}/src/routes/data/constants.ts (62%) rename packages/{api-router => api/router}/src/routes/data/doc.ts (63%) rename packages/{api-router => api/router}/src/routes/data/driver-stats.ts (80%) rename packages/{api-router => api/router}/src/routes/data/hosted.ts (72%) rename packages/{api-router => api/router}/src/routes/data/index.ts (100%) rename packages/{api-router => api/router}/src/routes/data/league.ts (73%) rename packages/{api-router => api/router}/src/routes/data/lookup.ts (67%) rename packages/{api-router => api/router}/src/routes/data/member.ts (71%) rename packages/{api-router => api/router}/src/routes/data/results.ts (51%) rename packages/{api-router => api/router}/src/routes/data/season.ts (70%) rename packages/{api-router => api/router}/src/routes/data/series.ts (70%) rename packages/{api-router => api/router}/src/routes/data/stats.ts (73%) rename packages/{api-router => api/router}/src/routes/data/team.ts (72%) rename packages/{api-router => api/router}/src/routes/data/time-attack.ts (76%) rename packages/{api-router => api/router}/src/routes/data/track.ts (66%) rename packages/{api-router => api/router}/src/routes/index.ts (100%) rename packages/{api-router => api/router}/src/routes/utils.ts (100%) rename packages/{api-schema => api/router}/tsconfig.build.json (83%) rename packages/{api-router => api/router}/tsconfig.json (100%) rename packages/{api-schema => api/schema}/README.md (100%) rename packages/{api-schema => api/schema}/package.json (100%) rename packages/{api-schema => api/schema}/src/index.ts (100%) rename packages/{api-schema => api/schema}/src/schema/index.ts (100%) rename packages/{api-schema => api/schema}/src/schema/parameters.ts (100%) rename packages/{api-schema => api/schema}/src/schema/primitives.ts (100%) rename packages/{api-schema => api/schema}/src/schema/responses.ts (100%) rename packages/{api-router => api/schema}/tsconfig.build.json (83%) rename packages/{api-schema => api/schema}/tsconfig.json (100%) delete mode 100644 packages/api/src/api/README.md delete mode 100644 packages/api/src/api/auth/index.ts delete mode 100644 packages/api/src/api/data/car-class/index.ts delete mode 100644 packages/api/src/api/data/car/index.ts delete mode 100644 packages/api/src/api/data/constants/index.ts delete mode 100644 packages/api/src/api/data/driver-stats/index.ts delete mode 100644 packages/api/src/api/data/hosted/index.ts delete mode 100644 packages/api/src/api/data/index.ts delete mode 100644 packages/api/src/api/data/league/index.ts delete mode 100644 packages/api/src/api/data/lookup/index.ts delete mode 100644 packages/api/src/api/data/member/index.ts delete mode 100644 packages/api/src/api/data/results/index.ts delete mode 100644 packages/api/src/api/data/season/index.ts delete mode 100644 packages/api/src/api/data/series/index.ts delete mode 100644 packages/api/src/api/data/stats/index.ts delete mode 100644 packages/api/src/api/data/team/index.ts delete mode 100644 packages/api/src/api/data/time-attack/index.ts delete mode 100644 packages/api/src/api/data/track/index.ts delete mode 100644 packages/api/src/api/index.ts delete mode 100644 packages/api/src/api/types.ts delete mode 100644 packages/api/src/client.ts delete mode 100644 packages/api/src/index.ts delete mode 100644 packages/api/src/types.ts delete mode 100644 packages/api/src/util.ts delete mode 100644 packages/api/tsconfig.build.json delete mode 100644 packages/cli/.npmignore delete mode 100644 packages/cli/README.md delete mode 100755 packages/cli/bin/index.js delete mode 100644 packages/cli/bin/storage.js delete mode 100644 packages/cli/bin/util.js delete mode 100644 packages/cli/package.json delete mode 100644 packages/cli/src/index.ts delete mode 100644 packages/cli/src/storage.ts delete mode 100644 packages/cli/src/util.ts delete mode 100644 packages/cli/tsconfig.build.json delete mode 100644 packages/cli/tsconfig.json delete mode 100644 packages/oauth/client/src/constants.ts create mode 100644 packages/oauth/router/README.md create mode 100644 packages/oauth/router/openapi/spec.json create mode 100644 packages/oauth/router/openapitools.json create mode 100644 packages/oauth/router/package.json create mode 100644 packages/oauth/router/src/client/.openapi-generator-ignore create mode 100644 packages/oauth/router/src/client/.openapi-generator/FILES create mode 100644 packages/oauth/router/src/client/.openapi-generator/VERSION create mode 100644 packages/oauth/router/src/client/apis/DefaultApi.ts create mode 100644 packages/oauth/router/src/client/apis/index.ts create mode 100644 packages/oauth/router/src/client/docs/DefaultApi.md create mode 100644 packages/oauth/router/src/client/docs/ErrorResponse.md create mode 100644 packages/oauth/router/src/client/docs/IracingProfileGet200Response.md create mode 100644 packages/oauth/router/src/client/docs/SessionsGet200Response.md create mode 100644 packages/oauth/router/src/client/docs/SessionsGet200ResponseSessionsInner.md create mode 100644 packages/oauth/router/src/client/index.ts create mode 100644 packages/oauth/router/src/client/models/ErrorResponse.ts create mode 100644 packages/oauth/router/src/client/models/IracingProfileGet200Response.ts create mode 100644 packages/oauth/router/src/client/models/SessionsGet200Response.ts create mode 100644 packages/oauth/router/src/client/models/SessionsGet200ResponseSessionsInner.ts create mode 100644 packages/oauth/router/src/client/models/index.ts create mode 100644 packages/oauth/router/src/client/runtime.ts create mode 100644 packages/oauth/router/src/index.ts create mode 100644 packages/oauth/router/src/middleware.ts create mode 100644 packages/oauth/router/tsconfig.build.json rename packages/{api => oauth/router}/tsconfig.json (100%) diff --git a/examples/iracing-proxy-api-example/.env.template b/examples/iracing-proxy-api-example/.env.template index 3ae8bbb..abff74b 100644 --- a/examples/iracing-proxy-api-example/.env.template +++ b/examples/iracing-proxy-api-example/.env.template @@ -1 +1,2 @@ -IRACING_CLIENT_ID="123456" \ No newline at end of file +IRACING_AUTH_CLIENT="123456" +IRACING_AUTH_SECRET= \ No newline at end of file diff --git a/examples/iracing-proxy-api-example/package.json b/examples/iracing-proxy-api-example/package.json index cefe42c..a3e4e5b 100644 --- a/examples/iracing-proxy-api-example/package.json +++ b/examples/iracing-proxy-api-example/package.json @@ -10,7 +10,7 @@ "dependencies": { "@iracing-data/api-router": "workspace:*", "@iracing-data/oauth-client": "workspace:*", - "axios": "^1.7.9", + "@iracing-data/oauth-router": "workspace:*", "better-call": "^1.0.24", "cookie-parser": "^1.4.7", "express": "^5.1.0", diff --git a/examples/iracing-proxy-api-example/src/config.ts b/examples/iracing-proxy-api-example/src/config.ts index df82e99..1f6c80d 100644 --- a/examples/iracing-proxy-api-example/src/config.ts +++ b/examples/iracing-proxy-api-example/src/config.ts @@ -1,2 +1,3 @@ export const PORT = process.env.PORT || "3000"; -export const IRACING_CLIENT_ID = process.env.IRACING_CLIENT_ID!; +export const IRACING_AUTH_CLIENT = process.env.IRACING_AUTH_CLIENT!; +export const IRACING_AUTH_SECRET = process.env.IRACING_AUTH_SECRET; diff --git a/examples/iracing-proxy-api-example/src/index.ts b/examples/iracing-proxy-api-example/src/index.ts index bfc06f8..a5e9a99 100644 --- a/examples/iracing-proxy-api-example/src/index.ts +++ b/examples/iracing-proxy-api-example/src/index.ts @@ -1,9 +1,12 @@ import path from "node:path"; import express from "express"; import cookieParser from "cookie-parser"; -import { createRouter } from "@iracing-data/api-router"; +import { + createRouter as createIRacingRouter, + IracingAPIResponse, +} from "@iracing-data/api-router"; +import { createRouter as createOAuthRouter } from "@iracing-data/oauth-router"; import { PORT } from "./config"; -import oauthClient from "./oauth-client"; import { page } from "./page"; import { getIRacingSession, @@ -12,9 +15,12 @@ import { } from "./middleware"; import { toNodeHandler } from "better-call/node"; import { toResponse } from "better-call"; -import { IracingAPIResponse } from "../../../packages/api-client/dist"; +import oauthClient from "./oauth-client"; -const iracingRouter = createRouter({ +/** + * Create a router for handling iRacing API requests. + */ +const iracingRouter = createIRacingRouter({ basePath: "/iracing", openapi: { path: "/reference", @@ -41,6 +47,42 @@ const iracingRouter = createRouter({ }, }); +/** + * Create a router for handling iRacing OAuth requests. + */ +const oauthRouter = createOAuthRouter({ + oauthClient: oauthClient, + callbackPath: "/oauth/iracing/callback", + onCallback: (session, { request, setCookie, getHeader }) => { + setCookie("iracing-session", JSON.stringify(session), { + httpOnly: true, + }); + + const url = new URL(request.url); + url.pathname = "/"; + url.search = ""; + + return Response.redirect(url, 302); + }, + onSignOut: (_, { setCookie }) => { + setCookie("iracing-session", ""); + }, + onRequest: (request) => { + console.debug("Received request:", request); + }, + onResponse: (response) => { + console.debug("Received response:", response); + }, + onError: (error) => { + console.debug("Received error:", error); + }, + openapi: { + disabled: true, + }, +}); + +const oauthNodeHandler = toNodeHandler(oauthRouter.handler); + const availablePaths = Object.values(iracingRouter.endpoints).map( ({ path: endpointPath }) => path.join("/iracing", endpointPath) ); @@ -58,42 +100,20 @@ app.get("/", getIRacingSession, (req: IRacingSessionRequest, res) => { .send( page( req.accessToken - ? `

Authenticated with iRacing

Sign out${availablePathsList}` - : `

Login

Login with iRacing` + ? `

Authenticated with iRacing

Sign out${availablePathsList}` + : `

Login

Login with iRacing` ) ); }); -/** - * Kicks off the iRacing OAuth sign-in flow. - */ -app.get("/iracing/login", async (req, res) => { - const { url } = await oauthClient.authorize(); - return res.redirect(url.toString()); -}); - -/** - * Callback for the iRacing OAuth sign-in flow. - * The path this handler is registered to should match - * the path provided to iRacing during client registration. - */ -app.get("/oauth/iracing/callback", async (req, res) => { - const params = new URLSearchParams(req.url.split("?")[1]); - const session = await oauthClient.callback(params); - - res.cookie("iracing-session", JSON.stringify(session), { - httpOnly: true, - }); - - return res.redirect("/"); -}); - app.use( "/iracing", setIRacingSessionHeader, toNodeHandler(iracingRouter.handler) ); +app.use(oauthNodeHandler); + app.listen(PORT, () => { console.info(`Example app listening on port ${PORT}`); }); diff --git a/examples/iracing-proxy-api-example/src/middleware.ts b/examples/iracing-proxy-api-example/src/middleware.ts index 9f6c742..1594363 100644 --- a/examples/iracing-proxy-api-example/src/middleware.ts +++ b/examples/iracing-proxy-api-example/src/middleware.ts @@ -12,9 +12,9 @@ export async function getIRacingSession( next: NextFunction ) { req.accessToken = req.get("X-IRACING-ACCESS-TOKEN"); - if (!req.accessToken && req.cookies?.["iracing-session"]) { const parsedSession = JSON.parse(req.cookies["iracing-session"]); + console.log("Got parsed session:", parsedSession); const decoded = (jwtDecode(parsedSession.access_token) as any) || {}; const exp = typeof decoded.exp === "number" @@ -33,6 +33,7 @@ export async function getIRacingSession( const newSession = await oauthClient.refresh( parsedSession.refresh_token ); + res.cookie("iracing-session", JSON.stringify(newSession), { httpOnly: true, secure: true, diff --git a/examples/iracing-proxy-api-example/src/oauth-client.ts b/examples/iracing-proxy-api-example/src/oauth-client.ts index 77277ad..3622557 100644 --- a/examples/iracing-proxy-api-example/src/oauth-client.ts +++ b/examples/iracing-proxy-api-example/src/oauth-client.ts @@ -1,10 +1,11 @@ import { OAuthClient } from "@iracing-data/oauth-client"; -import { IRACING_CLIENT_ID, PORT } from "./config"; +import { IRACING_AUTH_CLIENT, IRACING_AUTH_SECRET, PORT } from "./config"; import { InMemoryStore } from "./storage/memory"; export const oauthClient = new OAuthClient({ clientMetadata: { - clientId: IRACING_CLIENT_ID, + clientId: IRACING_AUTH_CLIENT, + clientSecret: IRACING_AUTH_SECRET, redirectUri: `http://127.0.0.1:${PORT}/oauth/iracing/callback`, scopes: ["iracing.profile", "iracing.auth"], }, diff --git a/openapi/iracing-oauth.json b/openapi/iracing-oauth.json new file mode 100644 index 0000000..961ba59 --- /dev/null +++ b/openapi/iracing-oauth.json @@ -0,0 +1 @@ +{"openapi":"3.1.1","info":{"title":"iRacing OAuth API","version":"0.0.1"},"servers":[{"url":"https://oauth.iracing.com/oauth2","description":"iRacing OAuth server."}],"externalDocs":{"url":"/oauth2/book"},"paths":{"/iracing/profile":{"get":{"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"iracing_name":{"type":"string"},"iracing_cust_id":{"type":"number"}},"required":["iracing_name","iracing_cust_id"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/sessions":{"get":{"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"type":"array","items":{"type":"object","properties":{"session_id":{"description":"A session identifier. This value is considered opaque and its format may change without warning at our discretion.","type":"string"},"client_id":{"description":"A client identifier.","type":"string"},"client_name":{"description":"The name of the client as selected during client registration.","type":"string"},"client_developer_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"client_developer_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"client_developer_email":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope_descriptions":{"anyOf":[{"type":"string"},{"type":"null"}]},"current_session":{"type":"boolean"},"impersonated":{"type":"boolean"},"impersonation_note":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_ip":{"anyOf":[{"type":"string","format":"ipv4","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"},{"type":"null"}]},"first_continent":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_subdivisions":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_city":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_header":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_operating_system":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_browser":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_ip":{"anyOf":[{"type":"string","format":"ipv4","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"},{"type":"null"}]},"last_continent":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_subdivisions":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_city":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_header":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_operating_system":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_browser":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["session_id","client_id","client_name","client_developer_name","client_developer_url","client_developer_email","scope","scope_descriptions","current_session","impersonated","impersonation_note","first_ip","first_continent","first_country","first_subdivisions","first_city","first_user_agent_header","first_user_agent_operating_system","first_user_agent_browser","last_ip","last_continent","last_country","last_subdivisions","last_city","last_user_agent_header","last_user_agent_operating_system","last_user_agent_browser"],"additionalProperties":false}}},"required":["sessions"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/current":{"post":{"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"forgetBrowser":{"type":"boolean"}}}}}},"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/sessions":{"post":{"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"sessionIds":{"type":"array","items":{"type":"string"}}},"required":["sessionIds"]}}}},"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/client":{"post":{"security":[{"bearerAuth":[]}],"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/authorize":{"get":{"parameters":[{"in":"query","name":"client_id","schema":{"description":"The client identifier issued during client registration.","type":"string"},"required":true,"description":"The client identifier issued during client registration."},{"in":"query","name":"redirect_uri","schema":{"description":"A redirect URI registered to the client, which must match exactly.","type":"string","format":"uri"},"required":true,"description":"A redirect URI registered to the client, which must match exactly."},{"in":"query","name":"response_type","schema":{"description":"The only valid value for this is code.","type":"string","const":"code"},"required":true,"description":"The only valid value for this is code."},{"in":"query","name":"code_challenge","schema":{"description":"A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless.","type":"string"},"description":"A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless."},{"in":"query","name":"code_challenge_method","schema":{"description":"The PKCE code challenge method. Either S256 (recommended) or plain.","default":"plain","anyOf":[{"type":"string","const":"plain"},{"type":"string","const":"S256"}]},"description":"The PKCE code challenge method. Either S256 (recommended) or plain."},{"in":"query","name":"state","schema":{"description":"This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks.","type":"string"},"description":"This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks."},{"in":"query","name":"scope","schema":{"description":"One or more scopes to request, if any, separated by whitespace.","type":"string"},"description":"One or more scopes to request, if any, separated by whitespace."},{"in":"query","name":"prompt","schema":{"description":"Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user.","type":"string"},"description":"Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user."}],"responses":{"302":{"description":"Redirect back to the provided redirect_uri"}}}},"/token":{"post":{"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"oneOf":[{"type":"object","properties":{"grant_type":{"type":"string","const":"authorization_code"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"Required only if issued.","type":"string"},"code":{"description":"As returned to the redirect_uri of the client.","type":"string"},"redirect_uri":{"description":"The same redirect_uri used to `/authorize`.","type":"string"},"code_verifier":{"description":"The PKCE code verifier which is only required if a code_challenge was used to `/authorize``.","type":"string"}},"required":["grant_type","client_id","code","redirect_uri"]},{"type":"object","properties":{"grant_type":{"type":"string","const":"authorization_code"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"Required only if issued.","type":"string"},"refresh_token":{"description":"As returned in the `/token` response.","type":"string"}},"required":["grant_type","client_id","refresh_token"]},{"type":"object","properties":{"grant_type":{"type":"string","const":"password_limited"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"Required only if issued.","type":"string"},"username":{"description":"The email address or other issued identifier for a user.","type":"string"},"password":{"description":"The password of the user. Password must be masked with the `username` before it is sent to the server.","type":"string"},"scope":{"description":"One or more scopes to request, if any, separated by whitespace.","type":"string"}},"required":["grant_type","client_id","username","password"]}],"type":"object"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"description":"The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion.","type":"string"},"token_type":{"type":"string","const":"bearer"},"expires_in":{"description":"The number of seconds after which this access token will no longer be considered valid.","type":"number"},"refresh_token":{"description":"The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion.","type":"string"},"refresh_token_expires_in":{"description":"The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted.","type":"number"},"scope":{"type":"string"}},"required":["access_token","token_type","expires_in","scope"],"additionalProperties":false}}}}}}}},"components":{"schemas":{"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-request-id":{"required":true,"description":"Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.","schema":{"title":"Request ID","description":"Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.","type":"string"}}},"responses":{"SessionsRevoked":{"description":"Session(s) were successfully revoked.","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"}}}} \ No newline at end of file diff --git a/openapi/iracing.json b/openapi/iracing.json new file mode 100644 index 0000000..d3ce662 --- /dev/null +++ b/openapi/iracing.json @@ -0,0 +1 @@ +{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"externalDocs":{"url":"/data/doc","description":"Find more information on available services here. Requires authentication."},"security":[{"bearerAuth":[]}],"tags":[{"name":"auth","description":"Auth endpoint."},{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/auth":{"post":{"operationId":"postAuth","tags":["auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string"}},"required":["email","password"]}}}},"responses":{}}},"/data/doc":{"get":{"operationId":"getDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/Docs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"operationId":"getCarClassDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"operationId":"getCarClassGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"operationId":"getCarDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"operationId":"getCarAssetsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"operationId":"getCarGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"operationId":"getConstantsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"operationId":"getConstantsCategoriesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"operationId":"getConstantsDivisionsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"operationId":"getConstantsEventTypesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"operationId":"getDriverStatsByCategoryDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategoryCategoryDocs","tags":["doc"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"operationId":"getHostedDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessionsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"operationId":"getHostedSessionsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"operationId":"getLeagueDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessionsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"operationId":"getLeagueDirectoryDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"operationId":"getLeagueGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"operationId":"getLeagueGetPointsSystemsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"operationId":"getLeagueMembershipDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"operationId":"getLeagueRosterDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"operationId":"getLeagueSeasonsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandingsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessionsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"operationId":"getLookupDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"operationId":"getLookupCountriesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"operationId":"getLookupDriversDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"operationId":"getLookupFlairsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"operationId":"getLookupGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"operationId":"getLookupLicensesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"operationId":"getMemberDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"operationId":"getMemberAwardsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"operationId":"getMemberAwardInstancesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"operationId":"getMemberChartDataDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"operationId":"getMemberGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"operationId":"getMemberInfoDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"operationId":"getMemberParticipationCreditsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"operationId":"getMemberProfileDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"operationId":"getResultsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"operationId":"getResultsGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"operationId":"getResultsEventLogDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartDataDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"operationId":"getResultsLapDataDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"operationId":"getResultsSearchHostedDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"operationId":"getResultsSearchSeriesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"operationId":"getResultsSeasonResultsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"operationId":"getSeasonDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"operationId":"getSeasonListDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"operationId":"getSeasonRaceGuideDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetailDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"operationId":"getSeriesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"operationId":"getSeriesAssetsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"operationId":"getSeriesGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasonsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"operationId":"getSeriesSeasonsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"operationId":"getSeriesSeasonListDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"operationId":"getSeriesSeasonScheduleDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"operationId":"getSeriesStatsSeriesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"operationId":"getStatsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"operationId":"getStatsMemberBestsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"operationId":"getStatsMemberCareerDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"operationId":"getStatsMemberDivisionDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"operationId":"getStatsMemberRecapDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRacesDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"operationId":"getStatsMemberSummaryDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearlyDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandingsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandingsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandingsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"operationId":"getStatsSeasonTTStandingsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"operationId":"getStatsSeasonTTResultsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResultsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"operationId":"getStatsWorldRecordsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"operationId":"getTeamDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"operationId":"getTeamGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"operationId":"getTeamMembershipDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"operationId":"getTimeAttackDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResultsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"operationId":"getTrackDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"operationId":"getTrackAssetsDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"operationId":"getTrackGetDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"externalDocs":{"url":"/data/doc/carclass/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"operationId":"getCarAssets","description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"externalDocs":{"url":"/data/doc/car/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"operationId":"getCar","tags":["car"],"externalDocs":{"url":"/data/doc/car/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"operationId":"getConstantsCategories","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/categories"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"operationId":"getConstantsDivisions","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/divisions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"operationId":"getConstantsEventTypes","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/event_types"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategory","tags":["driver_stats"],"externalDocs":{"url":"/data/doc/driver_stats_by_category/{category}"},"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessions","description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/combined_sessions"},"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"operationId":"getHostedSessions","description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/sessions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/cust_league_sessions"},"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"operationId":"getLeagueDirectory","tags":["league"],"externalDocs":{"url":"/data/doc/league/directory"},"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"operationId":"getLeague","tags":["league"],"externalDocs":{"url":"/data/doc/league/get"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"operationId":"getLeaguePointsSystems","tags":["league"],"externalDocs":{"url":"/data/doc/league/get_points_systems"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"operationId":"getLeagueMembership","tags":["league"],"externalDocs":{"url":"/data/doc/league/membership"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"operationId":"getLeagueRoster","tags":["league"],"externalDocs":{"url":"/data/doc/league/roster"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"operationId":"getLeagueSeasons","tags":["league"],"externalDocs":{"url":"/data/doc/league/seasons"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandings","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_standings"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_sessions"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"operationId":"getLookupCountries","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/countries"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"operationId":"getLookupFlairs","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/flairs"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"operationId":"getLookupLicenses","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/licenses"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"operationId":"getLookupDrivers","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/drivers"},"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"operationId":"getLookup","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"operationId":"getMemberAwards","tags":["member"],"externalDocs":{"url":"/data/doc/member/awards"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"operationId":"getMemberAwardInstances","tags":["member"],"externalDocs":{"url":"/data/doc/member/award_instances"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"operationId":"getMemberChartData","tags":["member"],"externalDocs":{"url":"/data/doc/member/chart_data"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","type":"number"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"operationId":"getMember","tags":["member"],"externalDocs":{"url":"/data/doc/member/get"},"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"required":true,"description":"Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"operationId":"getMemberInfo","tags":["member"],"externalDocs":{"url":"/data/doc/member/info"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"operationId":"getMemberParticipationCredits","tags":["member"],"externalDocs":{"url":"/data/doc/member/participation_credits"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getMemberProfile","summary":"Gets a requested user's profile.","tags":["member"],"externalDocs":{"url":"/data/doc/member/profile"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"operationId":"getResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/get"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"operationId":"getResultsEventLog","tags":["results"],"externalDocs":{"url":"/data/doc/results/event_log"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_chart_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"operationId":"getResultsLapData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"operationId":"getResultsSearchHosted","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_hosted"},"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"operationId":"getResultsSearchSeries","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_series"},"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"operationId":"getResultsSeasonResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/season_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"operationId":"getSeasonList","tags":["season"],"externalDocs":{"url":"/data/doc/season/list"},"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"operationId":"getSeasonRaceGuide","tags":["season"],"externalDocs":{"url":"/data/doc/season/race_guide"},"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIds","tags":["season"],"externalDocs":{"url":"/data/doc/season/spectator_subsessionids"},"parameters":[{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"$ref":"#/components/schemas/iracingEventType"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetail","tags":["season"],"externalDocs":{"url":"/data/doc/season/spectator_subsessionids_detail"},"parameters":[{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"$ref":"#/components/schemas/iracingEventType"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"season_ids","schema":{"description":"Seasons to include in the search. Defaults to all. ?season_ids=513,937","type":"array","items":{"type":"number"}},"description":"Seasons to include in the search. Defaults to all. ?season_ids=513,937"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"operationId":"getSeriesAssets","tags":["series"],"externalDocs":{"url":"/data/doc/series/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"operationId":"getSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/past_seasons"},"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"operationId":"getSeriesSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/seasons"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"operationId":"getSeriesSeasonList","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_list"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"operationId":"getSeriesSeasonSchedule","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_schedule"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"operationId":"getSeriesStatsSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/stats_series"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"operationId":"getStatsMemberBests","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_bests"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"operationId":"getStatsMemberCareer","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_career"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"operationId":"getStatsMemberDivision","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_division"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"operationId":"getStatsMemberRecap","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recap"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRaces","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recent_races"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"operationId":"getStatsMemberSummary","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_summary"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearly","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_yearly"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_driver_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_supersession_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_team_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"operationId":"getStatsSeasonTimeTrialStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"operationId":"getStatsSeasonTimeTrialResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_qualify_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"operationId":"getStatsWorldRecords","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/world_records"},"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"operationId":"getTeam","tags":["team"],"externalDocs":{"url":"/data/doc/team/get"},"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"operationId":"getTeamMembership","tags":["team"],"externalDocs":{"url":"/data/doc/team/membership"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResults","tags":["time_attack"],"externalDocs":{"url":"/data/doc/time_attack/member_season_results"},"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"operationId":"getTrackAssets","tags":["track"],"externalDocs":{"url":"/data/doc/track/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"operationId":"getTrack","tags":["track"],"externalDocs":{"url":"/data/doc/track/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false},"iracingServicesDocs":{"description":"An index of available services on the iRacing API.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceDocs"}},"iracingServiceDocs":{"description":"An index of service methods available for the requested service.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}},"iracingServiceMethodDocs":{"description":"An iRacing API Service Method object.","type":"object","properties":{"link":{"type":"string","format":"uri"},"parameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodParametersDocs"}},"expirationSeconds":{"type":"number"}},"required":["link","parameters"],"additionalProperties":false},"iracingServiceMethodParametersDocs":{"description":"An iRacing API Service Method Parameters object.","type":"object","properties":{"type":{"type":"string"},"note":{"type":"string"},"required":{"type":"boolean"}},"required":["type"],"additionalProperties":false},"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"Docs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServicesDocs"}}}},"ServiceDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceDocs"}}}},"ServiceMethodDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file diff --git a/packages/api-client/openapitools.json b/openapitools.json similarity index 100% rename from packages/api-client/openapitools.json rename to openapitools.json diff --git a/package.json b/package.json index 93ac7a8..811a079 100644 --- a/package.json +++ b/package.json @@ -4,20 +4,31 @@ "description": "", "main": "index.js", "scripts": { + "build": "pnpm --recursive --stream build", + "codegen": "pnpm codegen:openapi && pnpm codegen:client", + "codegen:openapi": "pnpm -w --parallel --stream '/^codegen:openapi:.+$/'", + "codegen:openapi:api": "iracing-api-openapi -o ./openapi -f iracing.json", + "codegen:openapi:oauth": "iracing-oauth-api-openapi -o ./openapi -f iracing-oauth.json", + "codegen:client": "pnpm -w --parallel --stream '/^codegen:client:api:.+$/'", + "codegen:client:api": "pnpm -w --parallel --stream '/^codegen:client:api:.+$/'", + "codegen:client:api:axios": "openapi-generator-cli generate -g typescript-axios -i openapi/iracing.json -o packages/_api/client/axios --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client-axios'", + "codegen:client:api:fetch": "openapi-generator-cli generate -g typescript-fetch -i openapi/iracing.json -o packages/_api/client/fetch --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client-fetch'", + "dev:pkg": "pnpm --recursive --parallel --stream dev", + "dev:tsc": "tsc --build tsconfig.json --watch", + "dev": "NODE_ENV=development pnpm --stream '/^dev:.+$/'", + "format": "pnpm lint:fix && pnpm style:fix", "lint:fix": "pnpm lint --fix", "lint": "eslint . --ext .ts,.js", "style:fix": "prettier --write .", - "style": "prettier --check .", - "format": "pnpm lint:fix && pnpm style:fix", - "build": "pnpm --recursive --stream build", - "dev": "NODE_ENV=development pnpm --stream '/^dev:.+$/'", - "dev:tsc": "tsc --build tsconfig.json --watch", - "dev:pkg": "pnpm --recursive --parallel --stream dev" + "style": "prettier --check ." }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { + "@iracing-data/api-schema-to-openapi": "workspace:*", + "@iracing-data/oauth-schema-to-openapi": "workspace:*", + "@openapitools/openapi-generator-cli": "^2.25.0", "@types/google-protobuf": "^3.15.12", "@types/lodash": "^4.17.15", "@types/node": "^24", @@ -37,6 +48,8 @@ }, "workspaces": [ "packages/*", + "packages/api/*", + "packages/api/client/*", "packages/events/*", "packages/helpers/*", "packages/oauth/*" diff --git a/packages/api-client/openapi/openapi.json b/packages/api-client/openapi/openapi.json deleted file mode 100644 index 3e25f42..0000000 --- a/packages/api-client/openapi/openapi.json +++ /dev/null @@ -1 +0,0 @@ -{"openapi":"3.1.1","info":{"title":"iRacing `/data` API","version":"0.0.1"},"servers":[{"url":"https://members-ng.iracing.com/"}],"externalDocs":{"url":"/data/doc","description":"Find more information on available services here. Requires authentication."},"security":[{"bearerAuth":[]}],"tags":[{"name":"auth","description":"Auth endpoint."},{"name":"doc","description":"A documentation endpoint."},{"name":"car","description":"Car service endpoint."},{"name":"carclass","description":"Car class service endpoint."},{"name":"constants","description":"Constants service endpoint."},{"name":"driver_stats","description":"Driver stats service endpoint."},{"name":"hosted","description":"Hosted service endpoint."},{"name":"league","description":"League service endpoint"},{"name":"lookup","description":"Lookup endpoints for static reference data (countries, licenses, drivers, etc.)"},{"name":"member","description":"Member profile and related endpoints (profile, awards, participation credits)."},{"name":"results","description":"Race and session result endpoints (lap data, event logs, season results)."},{"name":"season","description":"Season-related endpoints (season lists, race guides, schedules)."},{"name":"series","description":"Series endpoints (series metadata, seasons, assets)."},{"name":"stats","description":"Statistical endpoints and summaries for members and seasons."},{"name":"team","description":"Team endpoints (team details, membership)."},{"name":"time_attack","description":"Time attack specific endpoints and member season results."},{"name":"track","description":"Track metadata and asset endpoints."}],"paths":{"/auth":{"post":{"operationId":"postAuth","tags":["auth"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string"}},"required":["email","password"]}}}},"responses":{}}},"/data/doc":{"get":{"operationId":"getDocs","tags":["doc"],"responses":{"200":{"$ref":"#/components/responses/Docs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass":{"get":{"operationId":"getCarClassDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/carclass/get":{"get":{"operationId":"getCarClassGetDocs","tags":["doc","carclass"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car":{"get":{"operationId":"getCarDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/assets":{"get":{"operationId":"getCarAssetsDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/car/get":{"get":{"operationId":"getCarGetDocs","tags":["doc","car"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants":{"get":{"operationId":"getConstantsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/categories":{"get":{"operationId":"getConstantsCategoriesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/divisions":{"get":{"operationId":"getConstantsDivisionsDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/constants/event_types":{"get":{"operationId":"getConstantsEventTypesDocs","tags":["doc","constants"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category":{"get":{"operationId":"getDriverStatsByCategoryDocs","tags":["doc","driver_stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategoryCategoryDocs","tags":["doc","driver_stats"],"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted":{"get":{"operationId":"getHostedDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/hosted/sessions":{"get":{"operationId":"getHostedSessionsDocs","tags":["doc","hosted"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league":{"get":{"operationId":"getLeagueDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/directory":{"get":{"operationId":"getLeagueDirectoryDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get":{"get":{"operationId":"getLeagueGetDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/get_points_systems":{"get":{"operationId":"getLeagueGetPointsSystemsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/membership":{"get":{"operationId":"getLeagueMembershipDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/roster":{"get":{"operationId":"getLeagueRosterDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/seasons":{"get":{"operationId":"getLeagueSeasonsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandingsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessionsDocs","tags":["doc","league"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup":{"get":{"operationId":"getLookupDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/countries":{"get":{"operationId":"getLookupCountriesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/drivers":{"get":{"operationId":"getLookupDriversDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/flairs":{"get":{"operationId":"getLookupFlairsDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/get":{"get":{"operationId":"getLookupGetDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/lookup/licenses":{"get":{"operationId":"getLookupLicensesDocs","tags":["doc","lookup"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member":{"get":{"operationId":"getMemberDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/awards":{"get":{"operationId":"getMemberAwardsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/award_instances":{"get":{"operationId":"getMemberAwardInstancesDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/chart_data":{"get":{"operationId":"getMemberChartDataDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/get":{"get":{"operationId":"getMemberGetDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/info":{"get":{"operationId":"getMemberInfoDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/participation_credits":{"get":{"operationId":"getMemberParticipationCreditsDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/member/profile":{"get":{"operationId":"getMemberProfileDocs","tags":["doc","member"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results":{"get":{"operationId":"getResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/get":{"get":{"operationId":"getResultsGetDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/event_log":{"get":{"operationId":"getResultsEventLogDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/lap_data":{"get":{"operationId":"getResultsLapDataDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_hosted":{"get":{"operationId":"getResultsSearchHostedDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/search_series":{"get":{"operationId":"getResultsSearchSeriesDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/results/season_results":{"get":{"operationId":"getResultsSeasonResultsDocs","tags":["doc","results"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season":{"get":{"operationId":"getSeasonDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/list":{"get":{"operationId":"getSeasonListDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/race_guide":{"get":{"operationId":"getSeasonRaceGuideDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetailDocs","tags":["doc","season"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series":{"get":{"operationId":"getSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/assets":{"get":{"operationId":"getSeriesAssetsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/get":{"get":{"operationId":"getSeriesGetDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/seasons":{"get":{"operationId":"getSeriesSeasonsDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_list":{"get":{"operationId":"getSeriesSeasonListDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/season_schedule":{"get":{"operationId":"getSeriesSeasonScheduleDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/series/stats_series":{"get":{"operationId":"getSeriesStatsSeriesDocs","tags":["doc","series"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats":{"get":{"operationId":"getStatsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_bests":{"get":{"operationId":"getStatsMemberBestsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_career":{"get":{"operationId":"getStatsMemberCareerDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_division":{"get":{"operationId":"getStatsMemberDivisionDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recap":{"get":{"operationId":"getStatsMemberRecapDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRacesDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_summary":{"get":{"operationId":"getStatsMemberSummaryDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearlyDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_standings":{"get":{"operationId":"getStatsSeasonTTStandingsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_tt_results":{"get":{"operationId":"getStatsSeasonTTResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResultsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/stats/world_records":{"get":{"operationId":"getStatsWorldRecordsDocs","tags":["doc","stats"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team":{"get":{"operationId":"getTeamDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/get":{"get":{"operationId":"getTeamGetDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/team/membership":{"get":{"operationId":"getTeamMembershipDocs","tags":["doc","team"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack":{"get":{"operationId":"getTimeAttackDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResultsDocs","tags":["doc","time_attack"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track":{"get":{"operationId":"getTrackDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/assets":{"get":{"operationId":"getTrackAssetsDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/doc/track/get":{"get":{"operationId":"getTrackGetDocs","tags":["doc","track"],"responses":{"200":{"$ref":"#/components/responses/ServiceMethodDocs"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/data/carclass/get":{"get":{"operationId":"getCarClass","summary":"Gets car classes.","tags":["carclass"],"externalDocs":{"url":"/data/doc/carclass/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/assets":{"get":{"operationId":"getCarAssets","description":"image paths are relative to https://images-static.iracing.com/","tags":["car"],"externalDocs":{"url":"/data/doc/car/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/car/get":{"get":{"operationId":"getCar","tags":["car"],"externalDocs":{"url":"/data/doc/car/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/categories":{"get":{"operationId":"getConstantsCategories","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/categories"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/divisions":{"get":{"operationId":"getConstantsDivisions","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/divisions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/constants/event_types":{"get":{"operationId":"getConstantsEventTypes","description":"Constant; returned directly as an array of objects","tags":["constants"],"externalDocs":{"url":"/data/doc/constants/event_types"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/driver_stats_by_category/{category}":{"get":{"operationId":"getDriverStatsByCategory","tags":["driver_stats"],"externalDocs":{"url":"/data/doc/driver_stats_by_category/{category}"},"parameters":[{"in":"path","name":"category","schema":{"$ref":"#/components/schemas/iracingCategory"},"required":true,"description":"Racing category."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/combined_sessions":{"get":{"operationId":"getHostedCombinedSessions","description":"Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/combined_sessions"},"parameters":[{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/hosted/sessions":{"get":{"operationId":"getHostedSessions","description":"Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.","tags":["hosted"],"externalDocs":{"url":"/data/doc/hosted/sessions"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/cust_league_sessions":{"get":{"operationId":"getLeagueCustomerLeagueSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/cust_league_sessions"},"parameters":[{"in":"query","name":"mine","schema":{"description":"If true, return only sessions created by this user.","type":"boolean"},"description":"If true, return only sessions created by this user."},{"in":"query","name":"package_id","schema":{"description":"If set, return only sessions using this car or track package ID.","type":"number"},"description":"If set, return only sessions using this car or track package ID."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/directory":{"get":{"operationId":"getLeagueDirectory","tags":["league"],"externalDocs":{"url":"/data/doc/league/directory"},"parameters":[{"in":"query","name":"search","schema":{"description":"Will search against league name, description, owner, and league ID.","type":"string"},"description":"Will search against league name, description, owner, and league ID."},{"in":"query","name":"tag","schema":{"description":"One or more tags, comma-separated.","type":"string"},"description":"One or more tags, comma-separated."},{"in":"query","name":"restrict_to_member","schema":{"description":"If true include only leagues for which customer is a member.","type":"boolean"},"description":"If true include only leagues for which customer is a member."},{"in":"query","name":"restrict_to_recruiting","schema":{"description":"If true include only leagues which are recruiting.","type":"boolean"},"description":"If true include only leagues which are recruiting."},{"in":"query","name":"restrict_to_friends","schema":{"description":"If true include only leagues owned by a friend.","type":"boolean"},"description":"If true include only leagues owned by a friend."},{"in":"query","name":"restrict_to_watched","schema":{"description":"If true include only leagues owned by a watched member.","type":"boolean"},"description":"If true include only leagues owned by a watched member."},{"in":"query","name":"minimum_roster_count","schema":{"description":"If set include leagues with at least this number of members.","type":"number"},"description":"If set include leagues with at least this number of members."},{"in":"query","name":"maximum_roster_count","schema":{"description":"If set include leagues with no more than this number of members.","type":"number"},"description":"If set include leagues with no more than this number of members."},{"in":"query","name":"lowerbound","schema":{"description":"First row of results to return. Defaults to 1.","type":"number"},"description":"First row of results to return. Defaults to 1."},{"in":"query","name":"upperbound","schema":{"description":"Last row of results to return. Defaults to lowerbound + 39.","type":"number"},"description":"Last row of results to return. Defaults to lowerbound + 39."},{"in":"query","name":"sort","schema":{"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.","type":"string"},"description":"One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance."},{"in":"query","name":"order","schema":{"description":"One of asc or desc. Defaults to asc.","type":"string"},"description":"One of asc or desc. Defaults to asc."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get":{"get":{"operationId":"getLeague","tags":["league"],"externalDocs":{"url":"/data/doc/league/get"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/get_points_systems":{"get":{"operationId":"getLeaguePointsSystems","tags":["league"],"externalDocs":{"url":"/data/doc/league/get_points_systems"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned.","type":"number"},"description":"If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/membership":{"get":{"operationId":"getLeagueMembership","tags":["league"],"externalDocs":{"url":"/data/doc/league/membership"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned.","$ref":"#/components/schemas/customerId"},"description":"If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned."},{"in":"query","name":"include_league","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/roster":{"get":{"operationId":"getLeagueRoster","tags":["league"],"externalDocs":{"url":"/data/doc/league/roster"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/seasons":{"get":{"operationId":"getLeagueSeasons","tags":["league"],"externalDocs":{"url":"/data/doc/league/seasons"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"retired","schema":{"description":"If true include seasons which are no longer active.","type":"boolean"},"description":"If true include seasons which are no longer active."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_standings":{"get":{"operationId":"getLeagueSeasonStandings","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_standings"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"}},{"in":"query","name":"car_id","schema":{"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes.","type":"number"},"description":"If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/league/season_sessions":{"get":{"operationId":"getLeagueSeasonSessions","tags":["league"],"externalDocs":{"url":"/data/doc/league/season_sessions"},"parameters":[{"in":"query","name":"league_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"results_only","schema":{"description":"If true include only sessions for which results are available.","type":"boolean"},"description":"If true include only sessions for which results are available."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/countries":{"get":{"operationId":"getLookupCountries","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/countries"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/flairs":{"get":{"operationId":"getLookupFlairs","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/flairs"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/licenses":{"get":{"operationId":"getLookupLicenses","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/licenses"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/drivers":{"get":{"operationId":"getLookupDrivers","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/drivers"},"parameters":[{"in":"query","name":"search_term","schema":{"description":"A cust_id or partial name for which to search.","type":"string"},"required":true,"description":"A cust_id or partial name for which to search."},{"in":"query","name":"league_id","schema":{"description":"Narrow the search to the roster of the given league.","type":"number"},"description":"Narrow the search to the roster of the given league."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/lookup/get":{"get":{"operationId":"getLookup","tags":["lookup"],"externalDocs":{"url":"/data/doc/lookup/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/awards":{"get":{"operationId":"getMemberAwards","tags":["member"],"externalDocs":{"url":"/data/doc/member/awards"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/award_instances":{"get":{"operationId":"getMemberAwardInstances","tags":["member"],"externalDocs":{"url":"/data/doc/member/award_instances"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"award_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/chart_data":{"get":{"operationId":"getMemberChartData","tags":["member"],"externalDocs":{"url":"/data/doc/member/chart_data"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"category_id","schema":{"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road","type":"number"},"required":true,"description":"1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road"},{"in":"query","name":"chart_type","schema":{"description":"1 - iRating; 2 - TT Rating; 3 - License/SR","type":"number"},"required":true,"description":"1 - iRating; 2 - TT Rating; 3 - License/SR"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/get":{"get":{"operationId":"getMember","tags":["member"],"externalDocs":{"url":"/data/doc/member/get"},"parameters":[{"in":"query","name":"cust_ids","schema":{"description":"Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"required":true,"description":"Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4"},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/info":{"get":{"operationId":"getMemberInfo","tags":["member"],"externalDocs":{"url":"/data/doc/member/info"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/participation_credits":{"get":{"operationId":"getMemberParticipationCredits","tags":["member"],"externalDocs":{"url":"/data/doc/member/participation_credits"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/member/profile":{"get":{"operationId":"getMemberProfile","summary":"Gets a requested user's profile.","tags":["member"],"externalDocs":{"url":"/data/doc/member/profile"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/get":{"get":{"operationId":"getResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/get"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/event_log":{"get":{"operationId":"getResultsEventLog","tags":["results"],"externalDocs":{"url":"/data/doc/results/event_log"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_chart_data":{"get":{"operationId":"getResultsLapChartData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_chart_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/lap_data":{"get":{"operationId":"getResultsLapData","tags":["results"],"externalDocs":{"url":"/data/doc/results/lap_data"},"parameters":[{"in":"query","name":"subsession_id","schema":{"type":"number"},"required":true},{"in":"query","name":"simsession_number","schema":{"description":"The main event is 0; the preceding event is -1, and so on.","type":"number"},"required":true,"description":"The main event is 0; the preceding event is -1, and so on."},{"in":"query","name":"cust_id","schema":{"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included.","$ref":"#/components/schemas/customerId"},"description":"Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included."},{"in":"query","name":"team_id","schema":{"description":"Required if the subsession was a team event.","type":"number"},"description":"Required if the subsession was a team event."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_hosted":{"get":{"operationId":"getResultsSearchHosted","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_hosted"},"parameters":[{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"The participant's customer ID. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"The participant's customer ID. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"The team ID to search for. Takes priority over cust_id if both are supplied.","type":"number"},"description":"The team ID to search for. Takes priority over cust_id if both are supplied."},{"in":"query","name":"host_cust_id","schema":{"description":"The host's customer ID.","$ref":"#/components/schemas/customerId"},"description":"The host's customer ID."},{"in":"query","name":"session_name","schema":{"description":"Part or all of the session's name.","type":"string"},"description":"Part or all of the session's name."},{"in":"query","name":"league_id","schema":{"description":"Include only results for the league with this ID.","type":"number"},"description":"Include only results for the league with this ID."},{"in":"query","name":"league_season_id","schema":{"description":"Include only results for the league season with this ID.","type":"number"},"description":"Include only results for the league season with this ID."},{"in":"query","name":"car_id","schema":{"description":"One of the cars used by the session.","type":"number"},"description":"One of the cars used by the session."},{"in":"query","name":"track_id","schema":{"description":"The ID of the track used by the session.","type":"number"},"description":"The ID of the track used by the session."},{"in":"query","name":"category_ids","schema":{"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/search_series":{"get":{"operationId":"getResultsSearchSeries","tags":["results"],"externalDocs":{"url":"/data/doc/results/search_series"},"parameters":[{"in":"query","name":"season_year","schema":{"description":"Required when using season_quarter.","type":"number"},"description":"Required when using season_quarter."},{"in":"query","name":"season_quarter","schema":{"description":"Required when using season_year.","type":"number"},"description":"Required when using season_year."},{"in":"query","name":"start_range_begin","schema":{"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"start_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past."},{"in":"query","name":"finish_range_begin","schema":{"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\".","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"."},{"in":"query","name":"finish_range_end","schema":{"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"description":"ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past."},{"in":"query","name":"cust_id","schema":{"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied.","$ref":"#/components/schemas/customerId"},"description":"Include only sessions in which this customer participated. Ignored if team_id is supplied."},{"in":"query","name":"team_id","schema":{"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied.","type":"number"},"description":"Include only sessions in which this team participated. Takes priority over cust_id if both are supplied."},{"in":"query","name":"series_id","schema":{"description":"Include only sessions for series with this ID.","type":"number"},"description":"Include only sessions for series with this ID."},{"in":"query","name":"race_week_num","schema":{"description":"Include only sessions with this race week number.","type":"number"},"description":"Include only sessions with this race week number."},{"in":"query","name":"official_only","schema":{"description":"If true, include only sessions earning championship points. Defaults to all.","type":"boolean"},"description":"If true, include only sessions earning championship points. Defaults to all."},{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"category_ids","schema":{"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4","type":"string","pattern":"^\\d+(?:,\\d+)*$"},"description":"License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/results/season_results":{"get":{"operationId":"getResultsSeasonResults","tags":["results"],"externalDocs":{"url":"/data/doc/results/season_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race","$ref":"#/components/schemas/iracingEventType"},"description":"Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race"},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/list":{"get":{"operationId":"getSeasonList","tags":["season"],"externalDocs":{"url":"/data/doc/season/list"},"parameters":[{"in":"query","name":"season_year","schema":{"type":"number"},"required":true},{"in":"query","name":"season_quarter","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/race_guide":{"get":{"operationId":"getSeasonRaceGuide","tags":["season"],"externalDocs":{"url":"/data/doc/season/race_guide"},"parameters":[{"in":"query","name":"from","schema":{"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"description":"ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time."},{"in":"query","name":"include_end_after_from","schema":{"description":"Include sessions which start before 'from' but end after.","type":"boolean"},"description":"Include sessions which start before 'from' but end after."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/spectator_subsessionids":{"get":{"operationId":"getSeasonSpectatorSubsessionIds","tags":["season"],"externalDocs":{"url":"/data/doc/season/spectator_subsessionids"},"parameters":[{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"$ref":"#/components/schemas/iracingEventType"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/season/spectator_subsessionids_detail":{"get":{"operationId":"getSeasonSpectatorSubsessionIdsDetail","tags":["season"],"externalDocs":{"url":"/data/doc/season/spectator_subsessionids_detail"},"parameters":[{"in":"query","name":"event_types","schema":{"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5","type":"array","items":{"$ref":"#/components/schemas/iracingEventType"}},"description":"Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5"},{"in":"query","name":"season_ids","schema":{"description":"Seasons to include in the search. Defaults to all. ?season_ids=513,937","type":"array","items":{"type":"number"}},"description":"Seasons to include in the search. Defaults to all. ?season_ids=513,937"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/assets":{"get":{"operationId":"getSeriesAssets","tags":["series"],"externalDocs":{"url":"/data/doc/series/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/get":{"get":{"operationId":"getSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/past_seasons":{"get":{"operationId":"getSeriesPastSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/past_seasons"},"parameters":[{"in":"query","name":"series_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/seasons":{"get":{"operationId":"getSeriesSeasons","tags":["series"],"externalDocs":{"url":"/data/doc/series/seasons"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."},{"in":"query","name":"season_quarter","schema":{"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned.","type":"number"},"description":"To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_list":{"get":{"operationId":"getSeriesSeasonList","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_list"},"parameters":[{"in":"query","name":"include_series","schema":{"type":"boolean"}},{"in":"query","name":"season_year","schema":{"type":"number"}},{"in":"query","name":"season_quarter","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/season_schedule":{"get":{"operationId":"getSeriesSeasonSchedule","tags":["series"],"externalDocs":{"url":"/data/doc/series/season_schedule"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/series/stats_series":{"get":{"operationId":"getSeriesStatsSeries","tags":["series"],"externalDocs":{"url":"/data/doc/series/stats_series"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_bests":{"get":{"operationId":"getStatsMemberBests","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_bests"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"car_id","schema":{"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls.","type":"number"},"description":"First call should exclude car_id; use cars_driven list in return for subsequent calls."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_career":{"get":{"operationId":"getStatsMemberCareer","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_career"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_division":{"get":{"operationId":"getStatsMemberDivision","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_division"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"event_type","schema":{"description":"The event type code for the division type: 4 - Time Trial; 5 - Race","anyOf":[{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"required":true,"description":"The event type code for the division type: 4 - Time Trial; 5 - Race"}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recap":{"get":{"operationId":"getStatsMemberRecap","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recap"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."},{"in":"query","name":"year","schema":{"description":"Season year; if not supplied the current calendar year (UTC) is used.","anyOf":[{"type":"number","const":1},{"type":"number","const":2},{"type":"number","const":3},{"type":"number","const":4}]},"description":"Season year; if not supplied the current calendar year (UTC) is used."},{"in":"query","name":"season","schema":{"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year.","type":"number"},"description":"Season (quarter) within the year; if not supplied the recap will be for the entire year."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_recent_races":{"get":{"operationId":"getStatsMemberRecentRaces","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_recent_races"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_summary":{"get":{"operationId":"getStatsMemberSummary","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_summary"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/member_yearly":{"get":{"operationId":"getStatsMemberYearly","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/member_yearly"},"parameters":[{"in":"query","name":"cust_id","schema":{"description":"Defaults to the authenticated member.","$ref":"#/components/schemas/customerId"},"description":"Defaults to the authenticated member."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_driver_standings":{"get":{"operationId":"getStatsSeasonDriverStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_driver_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_supersession_standings":{"get":{"operationId":"getStatsSeasonSupersessionStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_supersession_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_team_standings":{"get":{"operationId":"getStatsSeasonTeamStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_team_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_standings":{"get":{"operationId":"getStatsSeasonTimeTrialStandings","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_standings"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"description":"The first race week of a season is 0."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_time_trial_results":{"get":{"operationId":"getStatsSeasonTimeTrialResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_time_trial_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/season_qualify_results":{"get":{"operationId":"getStatsSeasonQualifyResults","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/season_qualify_results"},"parameters":[{"in":"query","name":"season_id","schema":{"type":"number"},"required":true},{"in":"query","name":"car_class_id","schema":{"type":"number"},"required":true},{"in":"query","name":"race_week_num","schema":{"description":"The first race week of a season is 0.","type":"number"},"required":true,"description":"The first race week of a season is 0."},{"in":"query","name":"division","schema":{"$ref":"#/components/schemas/iracingDivision"}}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/stats/world_records":{"get":{"operationId":"getStatsWorldRecords","tags":["stats"],"externalDocs":{"url":"/data/doc/stats/world_records"},"parameters":[{"in":"query","name":"car_id","schema":{"type":"number"},"required":true},{"in":"query","name":"track_id","schema":{"type":"number"},"required":true},{"in":"query","name":"season_year","schema":{"description":"Limit best times to a given year.","type":"number"},"description":"Limit best times to a given year."},{"in":"query","name":"season_quarter","schema":{"description":"Limit best times to a given quarter; only applicable when year is used.","type":"number"},"description":"Limit best times to a given quarter; only applicable when year is used."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/get":{"get":{"operationId":"getTeam","tags":["team"],"externalDocs":{"url":"/data/doc/team/get"},"parameters":[{"in":"query","name":"team_id","schema":{"type":"number"},"required":true},{"in":"query","name":"include_licenses","schema":{"description":"For faster responses, only request when necessary.","type":"boolean"},"description":"For faster responses, only request when necessary."}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/team/membership":{"get":{"operationId":"getTeamMembership","tags":["team"],"externalDocs":{"url":"/data/doc/team/membership"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/time_attack/member_season_results":{"get":{"operationId":"getTimeAttackMemberSeasonResults","tags":["time_attack"],"externalDocs":{"url":"/data/doc/time_attack/member_season_results"},"parameters":[{"in":"query","name":"ta_comp_season_id","schema":{"type":"number"},"required":true}],"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/assets":{"get":{"operationId":"getTrackAssets","tags":["track"],"externalDocs":{"url":"/data/doc/track/assets"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}},"/data/track/get":{"get":{"operationId":"getTrack","tags":["track"],"externalDocs":{"url":"/data/doc/track/get"},"responses":{"200":{"$ref":"#/components/responses/Success"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Maintenance"}}}}},"components":{"schemas":{"iracingCategory":{"description":"Racing category.","anyOf":[{"description":"Oval discipline","type":"string","const":"oval"},{"description":"Road discipline. Legacy, use `sports_car` or `formula_car` instead.","type":"string","const":"road"},{"description":"Dirt road discipline.","type":"string","const":"dirt_road"},{"description":"Dirt oval discipline.","type":"string","const":"dirt_oval"},{"description":"Sports car discipline.","type":"string","const":"sports_car"},{"description":"Formula car discipline.","type":"string","const":"formula_car"}]},"customerId":{"description":"Numeric ID of a customer on iRacing.","type":"number"},"iracingEventType":{"description":"iRacing Event Type","anyOf":[{"description":"Practice","type":"number","const":2},{"description":"Qualifying","type":"number","const":3},{"description":"Time trial","type":"number","const":4},{"description":"Race","type":"number","const":5}]},"iracingDivision":{"description":"iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information.","anyOf":[{"description":"Division 1","type":"number","const":0},{"description":"Division 2","type":"number","const":1},{"description":"Division 3","type":"number","const":2},{"description":"Division 4","type":"number","const":3},{"description":"Division 5","type":"number","const":4},{"description":"Division 6","type":"number","const":5},{"description":"Division 7","type":"number","const":6},{"description":"Division 8","type":"number","const":7},{"description":"Division 9","type":"number","const":8},{"description":"Division 10","type":"number","const":9},{"description":"Rookie","type":"number","const":10}]},"iracingAPIResponse":{"description":"Response from iRacing `/data` API.","type":"object","properties":{"link":{"description":"A link to the cached data","type":"string","format":"uri"},"expires":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["link","expires"],"additionalProperties":false},"iracingServicesDocs":{"description":"An index of available services on the iRacing API.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceDocs"}},"iracingServiceDocs":{"description":"An index of service methods available for the requested service.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}},"iracingServiceMethodDocs":{"description":"An iRacing API Service Method object.","type":"object","properties":{"link":{"type":"string","format":"uri"},"parameters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/iracingServiceMethodParametersDocs"}},"expirationSeconds":{"type":"number"}},"required":["link","parameters"],"additionalProperties":false},"iracingServiceMethodParametersDocs":{"description":"An iRacing API Service Method Parameters object.","type":"object","properties":{"type":{"type":"string"},"note":{"type":"string"},"required":{"type":"boolean"}},"required":["type"],"additionalProperties":false},"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-ratelimit-limit":{"required":true,"description":"The current total rate limit.","schema":{"title":"Rate limit limit","description":"The current total rate limit.","type":"number"}},"x-ratelimit-remaining":{"required":true,"description":"How much of the rate limit you have remaining.","schema":{"title":"Rate limit remaining","description":"How much of the rate limit you have remaining.","type":"number"}},"x-ratelimit-reset":{"required":true,"description":"When the rate limit will reset in epoch timestamp.","schema":{"title":"Rate limit reset","description":"When the rate limit will reset in epoch timestamp.","type":"string"}}},"responses":{"Success":{"description":"Success","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingAPIResponse"}}}},"Docs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServicesDocs"}}}},"ServiceDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceDocs"}}}},"ServiceMethodDocs":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/iracingServiceMethodDocs"}}}},"RateLimited":{"description":"Rate limited","headers":{"x-ratelimit-limit":{"$ref":"#/components/headers/x-ratelimit-limit"},"x-ratelimit-remaining":{"$ref":"#/components/headers/x-ratelimit-remaining"},"x-ratelimit-reset":{"$ref":"#/components/headers/x-ratelimit-reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Maintenance":{"description":"Maintenance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"},"oAuth2":{"type":"oauth2","description":"OAuth service for obtaining a JWT. For more information, see https://oauth.iracing.com/oauth2/book/introduction.html","flows":{"authorizationCode":{"authorizationUrl":"https://oauth.iracing.com/oauth2/authorize","tokenUrl":"https://oauth.iracing.com/oauth2/token","scopes":{"iracing.auth":"Authorization for iRacing services.","iracing.profile":"Access to the iRacing profile."}}}}}}} \ No newline at end of file diff --git a/packages/api-client/package.json b/packages/api-client/package.json deleted file mode 100644 index def51a4..0000000 --- a/packages/api-client/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@iracing-data/api-client", - "version": "0.0.0-alpha.0", - "main": "dist/index.js", - "scripts": { - "codegen": "pnpm codegen:openapi && pnpm codegen:client", - "codegen:openapi": "iracing-api-openapi -o ./openapi", - "codegen:client": "openapi-generator-cli generate -g typescript-axios -i openapi/openapi.json -o src/client --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client'", - "build": "pnpm codegen && tsc --build tsconfig.build.json" - }, - "dependencies": { - "axios": "^1.13.2" - }, - "devDependencies": { - "@iracing-data/api-schema-to-openapi": "workspace:*", - "@openapitools/openapi-generator-cli": "^2.25.0" - } -} \ No newline at end of file diff --git a/packages/api-client/src/client/docs/CarApi.md b/packages/api-client/src/client/docs/CarApi.md deleted file mode 100644 index dd5aa47..0000000 --- a/packages/api-client/src/client/docs/CarApi.md +++ /dev/null @@ -1,237 +0,0 @@ -# CarApi - -All URIs are relative to *https://members-ng.iracing.com* - -|Method | HTTP request | Description| -|------------- | ------------- | -------------| -|[**getCar**](#getcar) | **GET** /data/car/get | | -|[**getCarAssets**](#getcarassets) | **GET** /data/car/assets | | -|[**getCarAssetsDocs**](#getcarassetsdocs) | **GET** /data/doc/car/assets | | -|[**getCarDocs**](#getcardocs) | **GET** /data/doc/car | | -|[**getCarGetDocs**](#getcargetdocs) | **GET** /data/doc/car/get | | - -# **getCar** -> IracingAPIResponse getCar() - - -### Example - -```typescript -import { - CarApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new CarApi(configuration); - -const { status, data } = await apiInstance.getCar(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getCarAssets** -> IracingAPIResponse getCarAssets() - -image paths are relative to https://images-static.iracing.com/ - -### Example - -```typescript -import { - CarApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new CarApi(configuration); - -const { status, data } = await apiInstance.getCarAssets(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getCarAssetsDocs** -> IracingServiceMethodDocs getCarAssetsDocs() - - -### Example - -```typescript -import { - CarApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new CarApi(configuration); - -const { status, data } = await apiInstance.getCarAssetsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getCarDocs** -> { [key: string]: IracingServiceMethodDocs; } getCarDocs() - - -### Example - -```typescript -import { - CarApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new CarApi(configuration); - -const { status, data } = await apiInstance.getCarDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getCarGetDocs** -> IracingServiceMethodDocs getCarGetDocs() - - -### Example - -```typescript -import { - CarApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new CarApi(configuration); - -const { status, data } = await apiInstance.getCarGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/ConstantsApi.md b/packages/api-client/src/client/docs/ConstantsApi.md deleted file mode 100644 index bbcf1c7..0000000 --- a/packages/api-client/src/client/docs/ConstantsApi.md +++ /dev/null @@ -1,331 +0,0 @@ -# ConstantsApi - -All URIs are relative to *https://members-ng.iracing.com* - -|Method | HTTP request | Description| -|------------- | ------------- | -------------| -|[**getConstantsCategories**](#getconstantscategories) | **GET** /data/constants/categories | | -|[**getConstantsCategoriesDocs**](#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | | -|[**getConstantsDivisions**](#getconstantsdivisions) | **GET** /data/constants/divisions | | -|[**getConstantsDivisionsDocs**](#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | | -|[**getConstantsDocs**](#getconstantsdocs) | **GET** /data/doc/constants | | -|[**getConstantsEventTypes**](#getconstantseventtypes) | **GET** /data/constants/event_types | | -|[**getConstantsEventTypesDocs**](#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | | - -# **getConstantsCategories** -> IracingAPIResponse getConstantsCategories() - -Constant; returned directly as an array of objects - -### Example - -```typescript -import { - ConstantsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ConstantsApi(configuration); - -const { status, data } = await apiInstance.getConstantsCategories(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getConstantsCategoriesDocs** -> IracingServiceMethodDocs getConstantsCategoriesDocs() - - -### Example - -```typescript -import { - ConstantsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ConstantsApi(configuration); - -const { status, data } = await apiInstance.getConstantsCategoriesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getConstantsDivisions** -> IracingAPIResponse getConstantsDivisions() - -Constant; returned directly as an array of objects - -### Example - -```typescript -import { - ConstantsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ConstantsApi(configuration); - -const { status, data } = await apiInstance.getConstantsDivisions(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getConstantsDivisionsDocs** -> IracingServiceMethodDocs getConstantsDivisionsDocs() - - -### Example - -```typescript -import { - ConstantsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ConstantsApi(configuration); - -const { status, data } = await apiInstance.getConstantsDivisionsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getConstantsDocs** -> { [key: string]: IracingServiceMethodDocs; } getConstantsDocs() - - -### Example - -```typescript -import { - ConstantsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ConstantsApi(configuration); - -const { status, data } = await apiInstance.getConstantsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getConstantsEventTypes** -> IracingAPIResponse getConstantsEventTypes() - -Constant; returned directly as an array of objects - -### Example - -```typescript -import { - ConstantsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ConstantsApi(configuration); - -const { status, data } = await apiInstance.getConstantsEventTypes(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getConstantsEventTypesDocs** -> IracingServiceMethodDocs getConstantsEventTypesDocs() - - -### Example - -```typescript -import { - ConstantsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ConstantsApi(configuration); - -const { status, data } = await apiInstance.getConstantsEventTypesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/DriverStatsApi.md b/packages/api-client/src/client/docs/DriverStatsApi.md deleted file mode 100644 index 924526d..0000000 --- a/packages/api-client/src/client/docs/DriverStatsApi.md +++ /dev/null @@ -1,158 +0,0 @@ -# DriverStatsApi - -All URIs are relative to *https://members-ng.iracing.com* - -|Method | HTTP request | Description| -|------------- | ------------- | -------------| -|[**getDriverStatsByCategory**](#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | | -|[**getDriverStatsByCategoryCategoryDocs**](#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | | -|[**getDriverStatsByCategoryDocs**](#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | | - -# **getDriverStatsByCategory** -> IracingAPIResponse getDriverStatsByCategory() - - -### Example - -```typescript -import { - DriverStatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new DriverStatsApi(configuration); - -let category: IracingCategory; //Racing category. (default to undefined) - -const { status, data } = await apiInstance.getDriverStatsByCategory( - category -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **category** | **IracingCategory** | Racing category. | defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getDriverStatsByCategoryCategoryDocs** -> IracingServiceMethodDocs getDriverStatsByCategoryCategoryDocs() - - -### Example - -```typescript -import { - DriverStatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new DriverStatsApi(configuration); - -let category: IracingCategory; //Racing category. (default to undefined) - -const { status, data } = await apiInstance.getDriverStatsByCategoryCategoryDocs( - category -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **category** | **IracingCategory** | Racing category. | defaults to undefined| - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getDriverStatsByCategoryDocs** -> { [key: string]: IracingServiceMethodDocs; } getDriverStatsByCategoryDocs() - - -### Example - -```typescript -import { - DriverStatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new DriverStatsApi(configuration); - -const { status, data } = await apiInstance.getDriverStatsByCategoryDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/IracingChartType.md b/packages/api-client/src/client/docs/IracingChartType.md deleted file mode 100644 index 5949866..0000000 --- a/packages/api-client/src/client/docs/IracingChartType.md +++ /dev/null @@ -1,13 +0,0 @@ -# IracingChartType - -iRacing Chart Type - -## Enum - -* `NUMBER_1` (value: `1`) - -* `NUMBER_2` (value: `2`) - -* `NUMBER_3` (value: `3`) - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/LookupApi.md b/packages/api-client/src/client/docs/LookupApi.md deleted file mode 100644 index b1031d6..0000000 --- a/packages/api-client/src/client/docs/LookupApi.md +++ /dev/null @@ -1,522 +0,0 @@ -# LookupApi - -All URIs are relative to *https://members-ng.iracing.com* - -|Method | HTTP request | Description| -|------------- | ------------- | -------------| -|[**getLookup**](#getlookup) | **GET** /data/lookup/get | | -|[**getLookupCountries**](#getlookupcountries) | **GET** /data/lookup/countries | | -|[**getLookupCountriesDocs**](#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | | -|[**getLookupDocs**](#getlookupdocs) | **GET** /data/doc/lookup | | -|[**getLookupDrivers**](#getlookupdrivers) | **GET** /data/lookup/drivers | | -|[**getLookupDriversDocs**](#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | | -|[**getLookupFlairs**](#getlookupflairs) | **GET** /data/lookup/flairs | | -|[**getLookupFlairsDocs**](#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | | -|[**getLookupGetDocs**](#getlookupgetdocs) | **GET** /data/doc/lookup/get | | -|[**getLookupLicenses**](#getlookuplicenses) | **GET** /data/lookup/licenses | | -|[**getLookupLicensesDocs**](#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | | - -# **getLookup** -> IracingAPIResponse getLookup() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookup(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupCountries** -> IracingAPIResponse getLookupCountries() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupCountries(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupCountriesDocs** -> IracingServiceMethodDocs getLookupCountriesDocs() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupCountriesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupDocs** -> { [key: string]: IracingServiceMethodDocs; } getLookupDocs() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupDrivers** -> IracingAPIResponse getLookupDrivers() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -let search_term: string; //A cust_id or partial name for which to search. (default to undefined) -let league_id: number; //Narrow the search to the roster of the given league. (optional) (default to undefined) - -const { status, data } = await apiInstance.getLookupDrivers( - search_term, - league_id -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **search_term** | [**string**] | A cust_id or partial name for which to search. | defaults to undefined| -| **league_id** | [**number**] | Narrow the search to the roster of the given league. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupDriversDocs** -> IracingServiceMethodDocs getLookupDriversDocs() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupDriversDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupFlairs** -> IracingAPIResponse getLookupFlairs() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupFlairs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupFlairsDocs** -> IracingServiceMethodDocs getLookupFlairsDocs() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupFlairsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupGetDocs** -> IracingServiceMethodDocs getLookupGetDocs() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupLicenses** -> IracingAPIResponse getLookupLicenses() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupLicenses(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLookupLicensesDocs** -> IracingServiceMethodDocs getLookupLicensesDocs() - - -### Example - -```typescript -import { - LookupApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LookupApi(configuration); - -const { status, data } = await apiInstance.getLookupLicensesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/TeamApi.md b/packages/api-client/src/client/docs/TeamApi.md deleted file mode 100644 index 3b15cda..0000000 --- a/packages/api-client/src/client/docs/TeamApi.md +++ /dev/null @@ -1,246 +0,0 @@ -# TeamApi - -All URIs are relative to *https://members-ng.iracing.com* - -|Method | HTTP request | Description| -|------------- | ------------- | -------------| -|[**getTeam**](#getteam) | **GET** /data/team/get | | -|[**getTeamDocs**](#getteamdocs) | **GET** /data/doc/team | | -|[**getTeamGetDocs**](#getteamgetdocs) | **GET** /data/doc/team/get | | -|[**getTeamMembership**](#getteammembership) | **GET** /data/team/membership | | -|[**getTeamMembershipDocs**](#getteammembershipdocs) | **GET** /data/doc/team/membership | | - -# **getTeam** -> IracingAPIResponse getTeam() - - -### Example - -```typescript -import { - TeamApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TeamApi(configuration); - -let team_id: number; // (default to undefined) -let include_licenses: boolean; //For faster responses, only request when necessary. (optional) (default to undefined) - -const { status, data } = await apiInstance.getTeam( - team_id, - include_licenses -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **team_id** | [**number**] | | defaults to undefined| -| **include_licenses** | [**boolean**] | For faster responses, only request when necessary. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTeamDocs** -> { [key: string]: IracingServiceMethodDocs; } getTeamDocs() - - -### Example - -```typescript -import { - TeamApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TeamApi(configuration); - -const { status, data } = await apiInstance.getTeamDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTeamGetDocs** -> IracingServiceMethodDocs getTeamGetDocs() - - -### Example - -```typescript -import { - TeamApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TeamApi(configuration); - -const { status, data } = await apiInstance.getTeamGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTeamMembership** -> IracingAPIResponse getTeamMembership() - - -### Example - -```typescript -import { - TeamApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TeamApi(configuration); - -const { status, data } = await apiInstance.getTeamMembership(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTeamMembershipDocs** -> IracingServiceMethodDocs getTeamMembershipDocs() - - -### Example - -```typescript -import { - TeamApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TeamApi(configuration); - -const { status, data } = await apiInstance.getTeamMembershipDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/TimeAttackApi.md b/packages/api-client/src/client/docs/TimeAttackApi.md deleted file mode 100644 index a9af2c4..0000000 --- a/packages/api-client/src/client/docs/TimeAttackApi.md +++ /dev/null @@ -1,151 +0,0 @@ -# TimeAttackApi - -All URIs are relative to *https://members-ng.iracing.com* - -|Method | HTTP request | Description| -|------------- | ------------- | -------------| -|[**getTimeAttackDocs**](#gettimeattackdocs) | **GET** /data/doc/time_attack | | -|[**getTimeAttackMemberSeasonResults**](#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | | -|[**getTimeAttackMemberSeasonResultsDocs**](#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | | - -# **getTimeAttackDocs** -> { [key: string]: IracingServiceMethodDocs; } getTimeAttackDocs() - - -### Example - -```typescript -import { - TimeAttackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TimeAttackApi(configuration); - -const { status, data } = await apiInstance.getTimeAttackDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTimeAttackMemberSeasonResults** -> IracingAPIResponse getTimeAttackMemberSeasonResults() - - -### Example - -```typescript -import { - TimeAttackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TimeAttackApi(configuration); - -let ta_comp_season_id: number; // (default to undefined) - -const { status, data } = await apiInstance.getTimeAttackMemberSeasonResults( - ta_comp_season_id -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **ta_comp_season_id** | [**number**] | | defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTimeAttackMemberSeasonResultsDocs** -> IracingServiceMethodDocs getTimeAttackMemberSeasonResultsDocs() - - -### Example - -```typescript -import { - TimeAttackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TimeAttackApi(configuration); - -const { status, data } = await apiInstance.getTimeAttackMemberSeasonResultsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/TrackApi.md b/packages/api-client/src/client/docs/TrackApi.md deleted file mode 100644 index 8172ef8..0000000 --- a/packages/api-client/src/client/docs/TrackApi.md +++ /dev/null @@ -1,236 +0,0 @@ -# TrackApi - -All URIs are relative to *https://members-ng.iracing.com* - -|Method | HTTP request | Description| -|------------- | ------------- | -------------| -|[**getTrack**](#gettrack) | **GET** /data/track/get | | -|[**getTrackAssets**](#gettrackassets) | **GET** /data/track/assets | | -|[**getTrackAssetsDocs**](#gettrackassetsdocs) | **GET** /data/doc/track/assets | | -|[**getTrackDocs**](#gettrackdocs) | **GET** /data/doc/track | | -|[**getTrackGetDocs**](#gettrackgetdocs) | **GET** /data/doc/track/get | | - -# **getTrack** -> IracingAPIResponse getTrack() - - -### Example - -```typescript -import { - TrackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TrackApi(configuration); - -const { status, data } = await apiInstance.getTrack(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTrackAssets** -> IracingAPIResponse getTrackAssets() - - -### Example - -```typescript -import { - TrackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TrackApi(configuration); - -const { status, data } = await apiInstance.getTrackAssets(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTrackAssetsDocs** -> IracingServiceMethodDocs getTrackAssetsDocs() - - -### Example - -```typescript -import { - TrackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TrackApi(configuration); - -const { status, data } = await apiInstance.getTrackAssetsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTrackDocs** -> { [key: string]: IracingServiceMethodDocs; } getTrackDocs() - - -### Example - -```typescript -import { - TrackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TrackApi(configuration); - -const { status, data } = await apiInstance.getTrackDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getTrackGetDocs** -> IracingServiceMethodDocs getTrackGetDocs() - - -### Example - -```typescript -import { - TrackApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new TrackApi(configuration); - -const { status, data } = await apiInstance.getTrackGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/index.ts b/packages/api-client/src/index.ts deleted file mode 100644 index 5ec7692..0000000 --- a/packages/api-client/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./client"; diff --git a/packages/api-client/tsconfig.build.json b/packages/api-client/tsconfig.build.json deleted file mode 100644 index d5eb016..0000000 --- a/packages/api-client/tsconfig.build.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig/node.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", - "noUnusedLocals": false, - "declarationMap": false, - "sourceMap": false, - "paths": { - "@/*": ["./src/*"] - } - }, - "exclude": ["node_modules", "dist"] -} diff --git a/packages/api-client/tsconfig.json b/packages/api-client/tsconfig.json deleted file mode 100644 index 9abc5e7..0000000 --- a/packages/api-client/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "include": [], - "references": [{ "path": "./tsconfig.build.json" }], - "compilerOptions": { - "paths": { - "@/*": ["src/*"] - } - } -} diff --git a/packages/api/.npmignore b/packages/api/.npmignore deleted file mode 100644 index d3c0529..0000000 --- a/packages/api/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -src/ -doc/ -tsconfig.build.json -tsconfig.build.tsbuildinfo -tsconfig.json diff --git a/packages/api/README.md b/packages/api/README.md deleted file mode 100644 index 49124bf..0000000 --- a/packages/api/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# @iracing-data/api - -An implementation for the iRacing `/data` API. Written in TypeScript, powered by Axios. - -## Installation - -_Coming Soon_ - -## Usage - -_Coming Soon_ - -## Contributing - -### Adding new API endpoints - -[docs](./src/api/README.md) - -### Adding implementation to the client - -Add the new route to the client, defined in the `src/` root: - -```typescript -export class IRacingAPIClient { - // ... existing implementation - - // Add the new route for easy access for consumers - async newResourceEndpoint() { - // Execute the network request - const response = await this.api.data.new.resourceEndpoint(); - - // !!!: Error handling if appropriate - // In most cases, this is irrelevant, but if you want to provide - // some context to the error, you can do so here. - if (response.status !== 200) { - throw new Error(`Failed to fetch data: ${response.status}`); - } - - // Use the helper function the fetch the JSON from the provided link - return fetchValidLinkData(response.data); - } - - // Or, if your endpoint takes parameters... - async newResourceEndpointWithParameters( - input: Parameters[0] // Typescript annotation to forward the parameters from the function definition - ) { - const response = await this.api.data.new.resourceEndpoint(input); - - // ...same as above - } - -} -``` \ No newline at end of file diff --git a/packages/api-client/src/client/.gitignore b/packages/api/client/axios/.gitignore similarity index 100% rename from packages/api-client/src/client/.gitignore rename to packages/api/client/axios/.gitignore diff --git a/packages/api-client/src/client/.npmignore b/packages/api/client/axios/.npmignore similarity index 100% rename from packages/api-client/src/client/.npmignore rename to packages/api/client/axios/.npmignore diff --git a/packages/api-client/src/client/.openapi-generator-ignore b/packages/api/client/axios/.openapi-generator-ignore similarity index 100% rename from packages/api-client/src/client/.openapi-generator-ignore rename to packages/api/client/axios/.openapi-generator-ignore diff --git a/packages/api-client/src/client/.openapi-generator/FILES b/packages/api/client/axios/.openapi-generator/FILES similarity index 100% rename from packages/api-client/src/client/.openapi-generator/FILES rename to packages/api/client/axios/.openapi-generator/FILES diff --git a/packages/api-client/src/client/.openapi-generator/VERSION b/packages/api/client/axios/.openapi-generator/VERSION similarity index 100% rename from packages/api-client/src/client/.openapi-generator/VERSION rename to packages/api/client/axios/.openapi-generator/VERSION diff --git a/packages/api-client/src/client/README.md b/packages/api/client/axios/README.md similarity index 65% rename from packages/api-client/src/client/README.md rename to packages/api/client/axios/README.md index d87f4b8..8698ac5 100644 --- a/packages/api-client/src/client/README.md +++ b/packages/api/client/axios/README.md @@ -1,4 +1,4 @@ -## @iracing-data/api-client@0.0.1 +## @iracing-data/api-client-axios@0.0.1 This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments: @@ -36,7 +36,7 @@ navigate to the folder of your consuming project and run one of the following co _published:_ ``` -npm install @iracing-data/api-client@0.0.1 --save +npm install @iracing-data/api-client-axios@0.0.1 --save ``` _unPublished (not recommended):_ @@ -54,19 +54,10 @@ Class | Method | HTTP request | Description *AuthApi* | [**postAuth**](docs/AuthApi.md#postauth) | **POST** /auth | *CarApi* | [**getCar**](docs/CarApi.md#getcar) | **GET** /data/car/get | *CarApi* | [**getCarAssets**](docs/CarApi.md#getcarassets) | **GET** /data/car/assets | -*CarApi* | [**getCarAssetsDocs**](docs/CarApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | -*CarApi* | [**getCarDocs**](docs/CarApi.md#getcardocs) | **GET** /data/doc/car | -*CarApi* | [**getCarGetDocs**](docs/CarApi.md#getcargetdocs) | **GET** /data/doc/car/get | *CarclassApi* | [**getCarClass**](docs/CarclassApi.md#getcarclass) | **GET** /data/carclass/get | Gets car classes. -*CarclassApi* | [**getCarClassDocs**](docs/CarclassApi.md#getcarclassdocs) | **GET** /data/doc/carclass | -*CarclassApi* | [**getCarClassGetDocs**](docs/CarclassApi.md#getcarclassgetdocs) | **GET** /data/doc/carclass/get | *ConstantsApi* | [**getConstantsCategories**](docs/ConstantsApi.md#getconstantscategories) | **GET** /data/constants/categories | -*ConstantsApi* | [**getConstantsCategoriesDocs**](docs/ConstantsApi.md#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | *ConstantsApi* | [**getConstantsDivisions**](docs/ConstantsApi.md#getconstantsdivisions) | **GET** /data/constants/divisions | -*ConstantsApi* | [**getConstantsDivisionsDocs**](docs/ConstantsApi.md#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | -*ConstantsApi* | [**getConstantsDocs**](docs/ConstantsApi.md#getconstantsdocs) | **GET** /data/doc/constants | *ConstantsApi* | [**getConstantsEventTypes**](docs/ConstantsApi.md#getconstantseventtypes) | **GET** /data/constants/event_types | -*ConstantsApi* | [**getConstantsEventTypesDocs**](docs/ConstantsApi.md#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | *DocApi* | [**getCarAssetsDocs**](docs/DocApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | *DocApi* | [**getCarClassDocs**](docs/DocApi.md#getcarclassdocs) | **GET** /data/doc/carclass | *DocApi* | [**getCarClassGetDocs**](docs/DocApi.md#getcarclassgetdocs) | **GET** /data/doc/carclass/get | @@ -151,139 +142,66 @@ Class | Method | HTTP request | Description *DocApi* | [**getTrackDocs**](docs/DocApi.md#gettrackdocs) | **GET** /data/doc/track | *DocApi* | [**getTrackGetDocs**](docs/DocApi.md#gettrackgetdocs) | **GET** /data/doc/track/get | *DriverStatsApi* | [**getDriverStatsByCategory**](docs/DriverStatsApi.md#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | -*DriverStatsApi* | [**getDriverStatsByCategoryCategoryDocs**](docs/DriverStatsApi.md#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | -*DriverStatsApi* | [**getDriverStatsByCategoryDocs**](docs/DriverStatsApi.md#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | *HostedApi* | [**getHostedCombinedSessions**](docs/HostedApi.md#gethostedcombinedsessions) | **GET** /data/hosted/combined_sessions | -*HostedApi* | [**getHostedCombinedSessionsDocs**](docs/HostedApi.md#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | -*HostedApi* | [**getHostedDocs**](docs/HostedApi.md#gethosteddocs) | **GET** /data/doc/hosted | *HostedApi* | [**getHostedSessions**](docs/HostedApi.md#gethostedsessions) | **GET** /data/hosted/sessions | -*HostedApi* | [**getHostedSessionsDocs**](docs/HostedApi.md#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | *LeagueApi* | [**getLeague**](docs/LeagueApi.md#getleague) | **GET** /data/league/get | *LeagueApi* | [**getLeagueCustomerLeagueSessions**](docs/LeagueApi.md#getleaguecustomerleaguesessions) | **GET** /data/league/cust_league_sessions | -*LeagueApi* | [**getLeagueCustomerLeagueSessionsDocs**](docs/LeagueApi.md#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | *LeagueApi* | [**getLeagueDirectory**](docs/LeagueApi.md#getleaguedirectory) | **GET** /data/league/directory | -*LeagueApi* | [**getLeagueDirectoryDocs**](docs/LeagueApi.md#getleaguedirectorydocs) | **GET** /data/doc/league/directory | -*LeagueApi* | [**getLeagueDocs**](docs/LeagueApi.md#getleaguedocs) | **GET** /data/doc/league | -*LeagueApi* | [**getLeagueGetDocs**](docs/LeagueApi.md#getleaguegetdocs) | **GET** /data/doc/league/get | -*LeagueApi* | [**getLeagueGetPointsSystemsDocs**](docs/LeagueApi.md#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | *LeagueApi* | [**getLeagueMembership**](docs/LeagueApi.md#getleaguemembership) | **GET** /data/league/membership | -*LeagueApi* | [**getLeagueMembershipDocs**](docs/LeagueApi.md#getleaguemembershipdocs) | **GET** /data/doc/league/membership | *LeagueApi* | [**getLeaguePointsSystems**](docs/LeagueApi.md#getleaguepointssystems) | **GET** /data/league/get_points_systems | *LeagueApi* | [**getLeagueRoster**](docs/LeagueApi.md#getleagueroster) | **GET** /data/league/roster | -*LeagueApi* | [**getLeagueRosterDocs**](docs/LeagueApi.md#getleaguerosterdocs) | **GET** /data/doc/league/roster | *LeagueApi* | [**getLeagueSeasonSessions**](docs/LeagueApi.md#getleagueseasonsessions) | **GET** /data/league/season_sessions | -*LeagueApi* | [**getLeagueSeasonSessionsDocs**](docs/LeagueApi.md#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | *LeagueApi* | [**getLeagueSeasonStandings**](docs/LeagueApi.md#getleagueseasonstandings) | **GET** /data/league/season_standings | -*LeagueApi* | [**getLeagueSeasonStandingsDocs**](docs/LeagueApi.md#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | *LeagueApi* | [**getLeagueSeasons**](docs/LeagueApi.md#getleagueseasons) | **GET** /data/league/seasons | -*LeagueApi* | [**getLeagueSeasonsDocs**](docs/LeagueApi.md#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | *LookupApi* | [**getLookup**](docs/LookupApi.md#getlookup) | **GET** /data/lookup/get | *LookupApi* | [**getLookupCountries**](docs/LookupApi.md#getlookupcountries) | **GET** /data/lookup/countries | -*LookupApi* | [**getLookupCountriesDocs**](docs/LookupApi.md#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | -*LookupApi* | [**getLookupDocs**](docs/LookupApi.md#getlookupdocs) | **GET** /data/doc/lookup | *LookupApi* | [**getLookupDrivers**](docs/LookupApi.md#getlookupdrivers) | **GET** /data/lookup/drivers | -*LookupApi* | [**getLookupDriversDocs**](docs/LookupApi.md#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | *LookupApi* | [**getLookupFlairs**](docs/LookupApi.md#getlookupflairs) | **GET** /data/lookup/flairs | -*LookupApi* | [**getLookupFlairsDocs**](docs/LookupApi.md#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | -*LookupApi* | [**getLookupGetDocs**](docs/LookupApi.md#getlookupgetdocs) | **GET** /data/doc/lookup/get | *LookupApi* | [**getLookupLicenses**](docs/LookupApi.md#getlookuplicenses) | **GET** /data/lookup/licenses | -*LookupApi* | [**getLookupLicensesDocs**](docs/LookupApi.md#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | *MemberApi* | [**getMember**](docs/MemberApi.md#getmember) | **GET** /data/member/get | *MemberApi* | [**getMemberAwardInstances**](docs/MemberApi.md#getmemberawardinstances) | **GET** /data/member/award_instances | -*MemberApi* | [**getMemberAwardInstancesDocs**](docs/MemberApi.md#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | *MemberApi* | [**getMemberAwards**](docs/MemberApi.md#getmemberawards) | **GET** /data/member/awards | -*MemberApi* | [**getMemberAwardsDocs**](docs/MemberApi.md#getmemberawardsdocs) | **GET** /data/doc/member/awards | *MemberApi* | [**getMemberChartData**](docs/MemberApi.md#getmemberchartdata) | **GET** /data/member/chart_data | -*MemberApi* | [**getMemberChartDataDocs**](docs/MemberApi.md#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | -*MemberApi* | [**getMemberDocs**](docs/MemberApi.md#getmemberdocs) | **GET** /data/doc/member | -*MemberApi* | [**getMemberGetDocs**](docs/MemberApi.md#getmembergetdocs) | **GET** /data/doc/member/get | *MemberApi* | [**getMemberInfo**](docs/MemberApi.md#getmemberinfo) | **GET** /data/member/info | -*MemberApi* | [**getMemberInfoDocs**](docs/MemberApi.md#getmemberinfodocs) | **GET** /data/doc/member/info | *MemberApi* | [**getMemberParticipationCredits**](docs/MemberApi.md#getmemberparticipationcredits) | **GET** /data/member/participation_credits | -*MemberApi* | [**getMemberParticipationCreditsDocs**](docs/MemberApi.md#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | *MemberApi* | [**getMemberProfile**](docs/MemberApi.md#getmemberprofile) | **GET** /data/member/profile | Gets a requested user\'s profile. -*MemberApi* | [**getMemberProfileDocs**](docs/MemberApi.md#getmemberprofiledocs) | **GET** /data/doc/member/profile | *ResultsApi* | [**getResults**](docs/ResultsApi.md#getresults) | **GET** /data/results/get | -*ResultsApi* | [**getResultsDocs**](docs/ResultsApi.md#getresultsdocs) | **GET** /data/doc/results | *ResultsApi* | [**getResultsEventLog**](docs/ResultsApi.md#getresultseventlog) | **GET** /data/results/event_log | -*ResultsApi* | [**getResultsEventLogDocs**](docs/ResultsApi.md#getresultseventlogdocs) | **GET** /data/doc/results/event_log | -*ResultsApi* | [**getResultsGetDocs**](docs/ResultsApi.md#getresultsgetdocs) | **GET** /data/doc/results/get | *ResultsApi* | [**getResultsLapChartData**](docs/ResultsApi.md#getresultslapchartdata) | **GET** /data/results/lap_chart_data | -*ResultsApi* | [**getResultsLapChartDataDocs**](docs/ResultsApi.md#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | *ResultsApi* | [**getResultsLapData**](docs/ResultsApi.md#getresultslapdata) | **GET** /data/results/lap_data | -*ResultsApi* | [**getResultsLapDataDocs**](docs/ResultsApi.md#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | *ResultsApi* | [**getResultsSearchHosted**](docs/ResultsApi.md#getresultssearchhosted) | **GET** /data/results/search_hosted | -*ResultsApi* | [**getResultsSearchHostedDocs**](docs/ResultsApi.md#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | *ResultsApi* | [**getResultsSearchSeries**](docs/ResultsApi.md#getresultssearchseries) | **GET** /data/results/search_series | -*ResultsApi* | [**getResultsSearchSeriesDocs**](docs/ResultsApi.md#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | *ResultsApi* | [**getResultsSeasonResults**](docs/ResultsApi.md#getresultsseasonresults) | **GET** /data/results/season_results | -*ResultsApi* | [**getResultsSeasonResultsDocs**](docs/ResultsApi.md#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | -*SeasonApi* | [**getSeasonDocs**](docs/SeasonApi.md#getseasondocs) | **GET** /data/doc/season | *SeasonApi* | [**getSeasonList**](docs/SeasonApi.md#getseasonlist) | **GET** /data/season/list | -*SeasonApi* | [**getSeasonListDocs**](docs/SeasonApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | *SeasonApi* | [**getSeasonRaceGuide**](docs/SeasonApi.md#getseasonraceguide) | **GET** /data/season/race_guide | -*SeasonApi* | [**getSeasonRaceGuideDocs**](docs/SeasonApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | *SeasonApi* | [**getSeasonSpectatorSubsessionIds**](docs/SeasonApi.md#getseasonspectatorsubsessionids) | **GET** /data/season/spectator_subsessionids | *SeasonApi* | [**getSeasonSpectatorSubsessionIdsDetail**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdetail) | **GET** /data/season/spectator_subsessionids_detail | -*SeasonApi* | [**getSeasonSpectatorSubsessionIdsDetailDocs**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | -*SeasonApi* | [**getSeasonSpectatorSubsessionIdsDocs**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | *SeriesApi* | [**getSeries**](docs/SeriesApi.md#getseries) | **GET** /data/series/get | *SeriesApi* | [**getSeriesAssets**](docs/SeriesApi.md#getseriesassets) | **GET** /data/series/assets | -*SeriesApi* | [**getSeriesAssetsDocs**](docs/SeriesApi.md#getseriesassetsdocs) | **GET** /data/doc/series/assets | -*SeriesApi* | [**getSeriesDocs**](docs/SeriesApi.md#getseriesdocs) | **GET** /data/doc/series | -*SeriesApi* | [**getSeriesGetDocs**](docs/SeriesApi.md#getseriesgetdocs) | **GET** /data/doc/series/get | *SeriesApi* | [**getSeriesPastSeasons**](docs/SeriesApi.md#getseriespastseasons) | **GET** /data/series/past_seasons | -*SeriesApi* | [**getSeriesPastSeasonsDocs**](docs/SeriesApi.md#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | *SeriesApi* | [**getSeriesSeasonList**](docs/SeriesApi.md#getseriesseasonlist) | **GET** /data/series/season_list | -*SeriesApi* | [**getSeriesSeasonListDocs**](docs/SeriesApi.md#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | *SeriesApi* | [**getSeriesSeasonSchedule**](docs/SeriesApi.md#getseriesseasonschedule) | **GET** /data/series/season_schedule | -*SeriesApi* | [**getSeriesSeasonScheduleDocs**](docs/SeriesApi.md#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | *SeriesApi* | [**getSeriesSeasons**](docs/SeriesApi.md#getseriesseasons) | **GET** /data/series/seasons | -*SeriesApi* | [**getSeriesSeasonsDocs**](docs/SeriesApi.md#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | *SeriesApi* | [**getSeriesStatsSeries**](docs/SeriesApi.md#getseriesstatsseries) | **GET** /data/series/stats_series | -*SeriesApi* | [**getSeriesStatsSeriesDocs**](docs/SeriesApi.md#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | -*StatsApi* | [**getStatsDocs**](docs/StatsApi.md#getstatsdocs) | **GET** /data/doc/stats | *StatsApi* | [**getStatsMemberBests**](docs/StatsApi.md#getstatsmemberbests) | **GET** /data/stats/member_bests | -*StatsApi* | [**getStatsMemberBestsDocs**](docs/StatsApi.md#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | *StatsApi* | [**getStatsMemberCareer**](docs/StatsApi.md#getstatsmembercareer) | **GET** /data/stats/member_career | -*StatsApi* | [**getStatsMemberCareerDocs**](docs/StatsApi.md#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | *StatsApi* | [**getStatsMemberDivision**](docs/StatsApi.md#getstatsmemberdivision) | **GET** /data/stats/member_division | -*StatsApi* | [**getStatsMemberDivisionDocs**](docs/StatsApi.md#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | *StatsApi* | [**getStatsMemberRecap**](docs/StatsApi.md#getstatsmemberrecap) | **GET** /data/stats/member_recap | -*StatsApi* | [**getStatsMemberRecapDocs**](docs/StatsApi.md#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | *StatsApi* | [**getStatsMemberRecentRaces**](docs/StatsApi.md#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | -*StatsApi* | [**getStatsMemberRecentRacesDocs**](docs/StatsApi.md#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | *StatsApi* | [**getStatsMemberSummary**](docs/StatsApi.md#getstatsmembersummary) | **GET** /data/stats/member_summary | -*StatsApi* | [**getStatsMemberSummaryDocs**](docs/StatsApi.md#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | *StatsApi* | [**getStatsMemberYearly**](docs/StatsApi.md#getstatsmemberyearly) | **GET** /data/stats/member_yearly | -*StatsApi* | [**getStatsMemberYearlyDocs**](docs/StatsApi.md#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | *StatsApi* | [**getStatsSeasonDriverStandings**](docs/StatsApi.md#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | -*StatsApi* | [**getStatsSeasonDriverStandingsDocs**](docs/StatsApi.md#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | *StatsApi* | [**getStatsSeasonQualifyResults**](docs/StatsApi.md#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | -*StatsApi* | [**getStatsSeasonQualifyResultsDocs**](docs/StatsApi.md#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | *StatsApi* | [**getStatsSeasonSupersessionStandings**](docs/StatsApi.md#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | -*StatsApi* | [**getStatsSeasonSupersessionStandingsDocs**](docs/StatsApi.md#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | -*StatsApi* | [**getStatsSeasonTTResultsDocs**](docs/StatsApi.md#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | -*StatsApi* | [**getStatsSeasonTTStandingsDocs**](docs/StatsApi.md#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | *StatsApi* | [**getStatsSeasonTeamStandings**](docs/StatsApi.md#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | -*StatsApi* | [**getStatsSeasonTeamStandingsDocs**](docs/StatsApi.md#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | *StatsApi* | [**getStatsSeasonTimeTrialResults**](docs/StatsApi.md#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | *StatsApi* | [**getStatsSeasonTimeTrialStandings**](docs/StatsApi.md#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | *StatsApi* | [**getStatsWorldRecords**](docs/StatsApi.md#getstatsworldrecords) | **GET** /data/stats/world_records | -*StatsApi* | [**getStatsWorldRecordsDocs**](docs/StatsApi.md#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | *TeamApi* | [**getTeam**](docs/TeamApi.md#getteam) | **GET** /data/team/get | -*TeamApi* | [**getTeamDocs**](docs/TeamApi.md#getteamdocs) | **GET** /data/doc/team | -*TeamApi* | [**getTeamGetDocs**](docs/TeamApi.md#getteamgetdocs) | **GET** /data/doc/team/get | *TeamApi* | [**getTeamMembership**](docs/TeamApi.md#getteammembership) | **GET** /data/team/membership | -*TeamApi* | [**getTeamMembershipDocs**](docs/TeamApi.md#getteammembershipdocs) | **GET** /data/doc/team/membership | -*TimeAttackApi* | [**getTimeAttackDocs**](docs/TimeAttackApi.md#gettimeattackdocs) | **GET** /data/doc/time_attack | *TimeAttackApi* | [**getTimeAttackMemberSeasonResults**](docs/TimeAttackApi.md#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | -*TimeAttackApi* | [**getTimeAttackMemberSeasonResultsDocs**](docs/TimeAttackApi.md#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | *TrackApi* | [**getTrack**](docs/TrackApi.md#gettrack) | **GET** /data/track/get | *TrackApi* | [**getTrackAssets**](docs/TrackApi.md#gettrackassets) | **GET** /data/track/assets | -*TrackApi* | [**getTrackAssetsDocs**](docs/TrackApi.md#gettrackassetsdocs) | **GET** /data/doc/track/assets | -*TrackApi* | [**getTrackDocs**](docs/TrackApi.md#gettrackdocs) | **GET** /data/doc/track | -*TrackApi* | [**getTrackGetDocs**](docs/TrackApi.md#gettrackgetdocs) | **GET** /data/doc/track/get | ### Documentation For Models diff --git a/packages/api-client/src/client/api.ts b/packages/api/client/axios/api.ts similarity index 69% rename from packages/api-client/src/client/api.ts rename to packages/api/client/axios/api.ts index 76c2639..2b29301 100644 --- a/packages/api-client/src/client/api.ts +++ b/packages/api/client/axios/api.ts @@ -343,105 +343,6 @@ export const CarApiAxiosParamCreator = function (configuration?: Configuration) - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getCarAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car/assets`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getCarDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getCarGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -482,39 +383,6 @@ export const CarApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['CarApi.getCarAssets']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssetsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['CarApi.getCarAssetsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['CarApi.getCarDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['CarApi.getCarGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -540,30 +408,6 @@ export const CarApiFactory = function (configuration?: Configuration, basePath?: getCarAssets(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getCarAssets(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getCarAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getCarAssetsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getCarDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getCarDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getCarGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getCarGetDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -588,33 +432,6 @@ export class CarApi extends BaseAPI { public getCarAssets(options?: RawAxiosRequestConfig) { return CarApiFp(this.configuration).getCarAssets(options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getCarAssetsDocs(options?: RawAxiosRequestConfig) { - return CarApiFp(this.configuration).getCarAssetsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getCarDocs(options?: RawAxiosRequestConfig) { - return CarApiFp(this.configuration).getCarDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getCarGetDocs(options?: RawAxiosRequestConfig) { - return CarApiFp(this.configuration).getCarGetDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -658,13 +475,77 @@ export const CarclassApiAxiosParamCreator = function (configuration?: Configurat options: localVarRequestOptions, }; }, + } +}; + +/** + * CarclassApi - functional programming interface + */ +export const CarclassApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = CarclassApiAxiosParamCreator(configuration) + return { /** * + * @summary Gets car classes. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/carclass`; + async getCarClass(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClass(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['CarclassApi.getCarClass']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * CarclassApi - factory interface + */ +export const CarclassApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = CarclassApiFp(configuration) + return { + /** + * + * @summary Gets car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getCarClass(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getCarClass(options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * CarclassApi - object-oriented interface + */ +export class CarclassApi extends BaseAPI { + /** + * + * @summary Gets car classes. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getCarClass(options?: RawAxiosRequestConfig) { + return CarclassApiFp(this.configuration).getCarClass(options).then((request) => request(this.axios, this.basePath)); + } +} + + + +/** + * ConstantsApi - axios parameter creator + */ +export const ConstantsApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsCategories: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/constants/categories`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -692,12 +573,12 @@ export const CarclassApiAxiosParamCreator = function (configuration?: Configurat }; }, /** - * + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/carclass/get`; + getConstantsDivisions: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/constants/divisions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -724,133 +605,163 @@ export const CarclassApiAxiosParamCreator = function (configuration?: Configurat options: localVarRequestOptions, }; }, - } -}; - -/** - * CarclassApi - functional programming interface + /** + * Constant; returned directly as an array of objects + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getConstantsEventTypes: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/constants/event_types`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * ConstantsApi - functional programming interface */ -export const CarclassApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = CarclassApiAxiosParamCreator(configuration) +export const ConstantsApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = ConstantsApiAxiosParamCreator(configuration) return { /** - * - * @summary Gets car classes. + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarClass(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClass(options); + async getConstantsCategories(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategories(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['CarclassApi.getCarClass']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsCategories']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** - * + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarClassDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassDocs(options); + async getConstantsDivisions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisions(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['CarclassApi.getCarClassDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsDivisions']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** - * + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getCarClassGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassGetDocs(options); + async getConstantsEventTypes(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypes(options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['CarclassApi.getCarClassGetDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsEventTypes']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, } }; /** - * CarclassApi - factory interface + * ConstantsApi - factory interface */ -export const CarclassApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = CarclassApiFp(configuration) +export const ConstantsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = ConstantsApiFp(configuration) return { /** - * - * @summary Gets car classes. + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClass(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getCarClass(options).then((request) => request(axios, basePath)); + getConstantsCategories(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsCategories(options).then((request) => request(axios, basePath)); }, /** - * + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getCarClassDocs(options).then((request) => request(axios, basePath)); + getConstantsDivisions(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsDivisions(options).then((request) => request(axios, basePath)); }, /** - * + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getCarClassGetDocs(options).then((request) => request(axios, basePath)); + getConstantsEventTypes(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getConstantsEventTypes(options).then((request) => request(axios, basePath)); }, }; }; /** - * CarclassApi - object-oriented interface + * ConstantsApi - object-oriented interface */ -export class CarclassApi extends BaseAPI { +export class ConstantsApi extends BaseAPI { /** - * - * @summary Gets car classes. + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarClass(options?: RawAxiosRequestConfig) { - return CarclassApiFp(this.configuration).getCarClass(options).then((request) => request(this.axios, this.basePath)); + public getConstantsCategories(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsCategories(options).then((request) => request(this.axios, this.basePath)); } /** - * + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarClassDocs(options?: RawAxiosRequestConfig) { - return CarclassApiFp(this.configuration).getCarClassDocs(options).then((request) => request(this.axios, this.basePath)); + public getConstantsDivisions(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsDivisions(options).then((request) => request(this.axios, this.basePath)); } /** - * + * Constant; returned directly as an array of objects * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getCarClassGetDocs(options?: RawAxiosRequestConfig) { - return CarclassApiFp(this.configuration).getCarClassGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getConstantsEventTypes(options?: RawAxiosRequestConfig) { + return ConstantsApiFp(this.configuration).getConstantsEventTypes(options).then((request) => request(this.axios, this.basePath)); } } /** - * ConstantsApi - axios parameter creator + * DocApi - axios parameter creator */ -export const ConstantsApiAxiosParamCreator = function (configuration?: Configuration) { +export const DocApiAxiosParamCreator = function (configuration?: Configuration) { return { /** - * Constant; returned directly as an array of objects + * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsCategories: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/constants/categories`; + getCarAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -882,8 +793,8 @@ export const ConstantsApiAxiosParamCreator = function (configuration?: Configura * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsCategoriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/categories`; + getCarClassDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -911,12 +822,12 @@ export const ConstantsApiAxiosParamCreator = function (configuration?: Configura }; }, /** - * Constant; returned directly as an array of objects + * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDivisions: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/constants/divisions`; + getCarClassGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/carclass/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -948,8 +859,8 @@ export const ConstantsApiAxiosParamCreator = function (configuration?: Configura * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDivisionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/divisions`; + getCarDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -981,8 +892,8 @@ export const ConstantsApiAxiosParamCreator = function (configuration?: Configura * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants`; + getCarGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/car/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1010,12 +921,12 @@ export const ConstantsApiAxiosParamCreator = function (configuration?: Configura }; }, /** - * Constant; returned directly as an array of objects + * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsEventTypes: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/constants/event_types`; + getConstantsCategoriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/categories`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1047,8 +958,8 @@ export const ConstantsApiAxiosParamCreator = function (configuration?: Configura * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsEventTypesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/event_types`; + getConstantsDivisionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/divisions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1075,242 +986,79 @@ export const ConstantsApiAxiosParamCreator = function (configuration?: Configura options: localVarRequestOptions, }; }, - } -}; - -/** - * ConstantsApi - functional programming interface - */ -export const ConstantsApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = ConstantsApiAxiosParamCreator(configuration) - return { - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsCategories(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategories(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsCategories']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategoriesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsCategoriesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsDivisions(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisions(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsDivisions']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getConstantsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisionsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsDivisionsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getConstantsEventTypesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/constants/event_types`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication bearerAuth required + // http bearer authentication required + await setBearerAuthToObject(localVarHeaderParameter, configuration) + + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getConstantsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsEventTypes(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypes(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsEventTypes']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ConstantsApi.getConstantsEventTypesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - } -}; - -/** - * ConstantsApi - factory interface - */ -export const ConstantsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = ConstantsApiFp(configuration) - return { - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getConstantsCategories(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsCategories(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsCategoriesDocs(options).then((request) => request(axios, basePath)); - }, - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getConstantsDivisions(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsDivisions(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsDivisionsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getConstantsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getConstantsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getConstantsEventTypes(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsEventTypes(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getConstantsEventTypesDocs(options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * ConstantsApi - object-oriented interface - */ -export class ConstantsApi extends BaseAPI { - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getConstantsCategories(options?: RawAxiosRequestConfig) { - return ConstantsApiFp(this.configuration).getConstantsCategories(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getConstantsCategoriesDocs(options?: RawAxiosRequestConfig) { - return ConstantsApiFp(this.configuration).getConstantsCategoriesDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getConstantsDivisions(options?: RawAxiosRequestConfig) { - return ConstantsApiFp(this.configuration).getConstantsDivisions(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getConstantsDivisionsDocs(options?: RawAxiosRequestConfig) { - return ConstantsApiFp(this.configuration).getConstantsDivisionsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getConstantsDocs(options?: RawAxiosRequestConfig) { - return ConstantsApiFp(this.configuration).getConstantsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * Constant; returned directly as an array of objects - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getConstantsEventTypes(options?: RawAxiosRequestConfig) { - return ConstantsApiFp(this.configuration).getConstantsEventTypes(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getConstantsEventTypesDocs(options?: RawAxiosRequestConfig) { - return ConstantsApiFp(this.configuration).getConstantsEventTypesDocs(options).then((request) => request(this.axios, this.basePath)); - } -} - - - -/** - * DocApi - axios parameter creator - */ -export const DocApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getCarAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car/assets`; + getDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1339,11 +1087,15 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) }, /** * + * @param {IracingCategory} category Racing category. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/carclass`; + getDriverStatsByCategoryCategoryDocs: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'category' is not null or undefined + assertParamExists('getDriverStatsByCategoryCategoryDocs', 'category', category) + const localVarPath = `/data/doc/driver_stats_by_category/{category}` + .replace(`{${"category"}}`, encodeURIComponent(String(category))); // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1375,8 +1127,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarClassGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/carclass/get`; + getDriverStatsByCategoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/driver_stats_by_category`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1408,8 +1160,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car`; + getHostedCombinedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/combined_sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1441,8 +1193,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getCarGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/car/get`; + getHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1474,8 +1226,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsCategoriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/categories`; + getHostedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/hosted/sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1507,8 +1259,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDivisionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/divisions`; + getLeagueCustomerLeagueSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/cust_league_sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1540,8 +1292,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants`; + getLeagueDirectoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/directory`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1573,8 +1325,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getConstantsEventTypesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/constants/event_types`; + getLeagueDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1606,8 +1358,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc`; + getLeagueGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1636,15 +1388,11 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) }, /** * - * @param {IracingCategory} category Racing category. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDriverStatsByCategoryCategoryDocs: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'category' is not null or undefined - assertParamExists('getDriverStatsByCategoryCategoryDocs', 'category', category) - const localVarPath = `/data/doc/driver_stats_by_category/{category}` - .replace(`{${"category"}}`, encodeURIComponent(String(category))); + getLeagueGetPointsSystemsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/get_points_systems`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1676,8 +1424,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getDriverStatsByCategoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/driver_stats_by_category`; + getLeagueMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/membership`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1709,8 +1457,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedCombinedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted/combined_sessions`; + getLeagueRosterDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/roster`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1742,8 +1490,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted`; + getLeagueSeasonSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1775,8 +1523,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted/sessions`; + getLeagueSeasonStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/season_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1808,8 +1556,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueCustomerLeagueSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/cust_league_sessions`; + getLeagueSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/league/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1841,8 +1589,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDirectoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/directory`; + getLookupCountriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/countries`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1874,8 +1622,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league`; + getLookupDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1907,8 +1655,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/get`; + getLookupDriversDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/drivers`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1940,8 +1688,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetPointsSystemsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/get_points_systems`; + getLookupFlairsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/flairs`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -1973,8 +1721,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/membership`; + getLookupGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2006,8 +1754,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueRosterDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/roster`; + getLookupLicensesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/lookup/licenses`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2039,8 +1787,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/season_sessions`; + getMemberAwardInstancesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/award_instances`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2072,8 +1820,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/season_standings`; + getMemberAwardsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/awards`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2105,8 +1853,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/seasons`; + getMemberChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/chart_data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2138,8 +1886,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupCountriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/countries`; + getMemberDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2171,8 +1919,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup`; + getMemberGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2204,8 +1952,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupDriversDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/drivers`; + getMemberInfoDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/info`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2237,8 +1985,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupFlairsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/flairs`; + getMemberParticipationCreditsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/participation_credits`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2270,8 +2018,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/get`; + getMemberProfileDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/member/profile`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2303,8 +2051,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupLicensesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/licenses`; + getResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2336,8 +2084,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardInstancesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/award_instances`; + getResultsEventLogDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/event_log`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2369,8 +2117,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/awards`; + getResultsGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2402,8 +2150,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/chart_data`; + getResultsLapChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_chart_data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2435,8 +2183,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member`; + getResultsLapDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/lap_data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2468,8 +2216,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/get`; + getResultsSearchHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_hosted`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2501,8 +2249,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberInfoDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/info`; + getResultsSearchSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/search_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2534,8 +2282,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberParticipationCreditsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/participation_credits`; + getResultsSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/results/season_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2567,8 +2315,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberProfileDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/profile`; + getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2600,8 +2348,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results`; + getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2633,8 +2381,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsEventLogDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/event_log`; + getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/race_guide`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2666,8 +2414,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/get`; + getSeasonSpectatorSubsessionIdsDetailDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2699,8 +2447,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsLapChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/lap_chart_data`; + getSeasonSpectatorSubsessionIdsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/season/spectator_subsessionids`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2732,8 +2480,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsLapDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/lap_data`; + getSeriesAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2765,8 +2513,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/search_hosted`; + getSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2798,8 +2546,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/search_series`; + getSeriesGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2831,8 +2579,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/season_results`; + getSeriesPastSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/past_seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2864,8 +2612,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season`; + getSeriesSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2897,8 +2645,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/list`; + getSeriesSeasonScheduleDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/season_schedule`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2930,8 +2678,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/race_guide`; + getSeriesSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2963,8 +2711,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonSpectatorSubsessionIdsDetailDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; + getSeriesStatsSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/series/stats_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -2996,8 +2744,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeasonSpectatorSubsessionIdsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids`; + getStatsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3029,8 +2777,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/assets`; + getStatsMemberBestsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_bests`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3062,8 +2810,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series`; + getStatsMemberCareerDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_career`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3095,8 +2843,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/get`; + getStatsMemberDivisionDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_division`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3128,8 +2876,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesPastSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/past_seasons`; + getStatsMemberRecapDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recap`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3161,8 +2909,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_list`; + getStatsMemberRecentRacesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_recent_races`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3194,8 +2942,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonScheduleDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_schedule`; + getStatsMemberSummaryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_summary`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3227,8 +2975,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/seasons`; + getStatsMemberYearlyDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/member_yearly`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3260,8 +3008,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesStatsSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/stats_series`; + getStatsSeasonDriverStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_driver_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3293,8 +3041,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats`; + getStatsSeasonQualifyResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_qualify_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3326,8 +3074,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberBestsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_bests`; + getStatsSeasonSupersessionStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_supersession_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3359,8 +3107,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberCareerDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_career`; + getStatsSeasonTTResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3392,8 +3140,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberDivisionDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_division`; + getStatsSeasonTTStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_tt_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3425,8 +3173,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberRecapDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recap`; + getStatsSeasonTeamStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/season_team_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3458,8 +3206,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberRecentRacesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recent_races`; + getStatsWorldRecordsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/stats/world_records`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3491,8 +3239,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberSummaryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_summary`; + getTeamDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3524,8 +3272,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberYearlyDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_yearly`; + getTeamGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3557,8 +3305,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonDriverStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_driver_standings`; + getTeamMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/team/membership`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3590,8 +3338,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonQualifyResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_qualify_results`; + getTimeAttackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3623,8 +3371,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonSupersessionStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_supersession_standings`; + getTimeAttackMemberSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/time_attack/member_season_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3656,8 +3404,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTTResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_results`; + getTrackAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/assets`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3689,8 +3437,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTTStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_standings`; + getTrackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3722,8 +3470,8 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTeamStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_team_standings`; + getTrackGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/doc/track/get`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -3750,410 +3498,113 @@ export const DocApiAxiosParamCreator = function (configuration?: Configuration) options: localVarRequestOptions, }; }, + } +}; + +/** + * DocApi - functional programming interface + */ +export const DocApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = DocApiAxiosParamCreator(configuration) + return { /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsWorldRecordsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/world_records`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getCarAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssetsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarAssetsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getCarClassDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getCarClassGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTeamMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team/membership`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getCarDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTimeAttackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/time_attack`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getCarGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getCarGetDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getCarGetDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTimeAttackMemberSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/time_attack/member_season_results`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategoriesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsCategoriesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTrackAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/assets`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisionsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDivisionsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTrackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getConstantsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTrackGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * DocApi - functional programming interface - */ -export const DocApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = DocApiAxiosParamCreator(configuration) - return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarAssetsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarAssetsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarClassDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarClassGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarClassGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarClassGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getCarGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getCarGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getCarGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsCategoriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsCategoriesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsCategoriesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsDivisionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDivisionsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDivisionsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsEventTypesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + async getConstantsEventTypesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getConstantsEventTypesDocs(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['DocApi.getConstantsEventTypesDocs']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * @@ -6445,76 +5896,6 @@ export const DriverStatsApiAxiosParamCreator = function (configuration?: Configu - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {IracingCategory} category Racing category. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDriverStatsByCategoryCategoryDocs: async (category: IracingCategory, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'category' is not null or undefined - assertParamExists('getDriverStatsByCategoryCategoryDocs', 'category', category) - const localVarPath = `/data/doc/driver_stats_by_category/{category}` - .replace(`{${"category"}}`, encodeURIComponent(String(category))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDriverStatsByCategoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/driver_stats_by_category`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -6545,29 +5926,6 @@ export const DriverStatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['DriverStatsApi.getDriverStatsByCategory']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {IracingCategory} category Racing category. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getDriverStatsByCategoryCategoryDocs(category: IracingCategory, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryCategoryDocs(category, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DriverStatsApi.getDriverStatsByCategoryCategoryDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDriverStatsByCategoryDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['DriverStatsApi.getDriverStatsByCategoryDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -6586,23 +5944,6 @@ export const DriverStatsApiFactory = function (configuration?: Configuration, ba getDriverStatsByCategory(requestParameters: DriverStatsApiGetDriverStatsByCategoryRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getDriverStatsByCategory(requestParameters.category, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDriverStatsByCategoryCategoryDocs(requestParameters: DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getDriverStatsByCategoryDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -6616,16 +5957,6 @@ export interface DriverStatsApiGetDriverStatsByCategoryRequest { readonly category: IracingCategory } -/** - * Request parameters for getDriverStatsByCategoryCategoryDocs operation in DriverStatsApi. - */ -export interface DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest { - /** - * Racing category. - */ - readonly category: IracingCategory -} - /** * DriverStatsApi - object-oriented interface */ @@ -6639,25 +5970,6 @@ export class DriverStatsApi extends BaseAPI { public getDriverStatsByCategory(requestParameters: DriverStatsApiGetDriverStatsByCategoryRequest, options?: RawAxiosRequestConfig) { return DriverStatsApiFp(this.configuration).getDriverStatsByCategory(requestParameters.category, options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getDriverStatsByCategoryCategoryDocs(requestParameters: DriverStatsApiGetDriverStatsByCategoryCategoryDocsRequest, options?: RawAxiosRequestConfig) { - return DriverStatsApiFp(this.configuration).getDriverStatsByCategoryCategoryDocs(requestParameters.category, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getDriverStatsByCategoryDocs(options?: RawAxiosRequestConfig) { - return DriverStatsApiFp(this.configuration).getDriverStatsByCategoryDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -6706,12 +6018,12 @@ export const HostedApiAxiosParamCreator = function (configuration?: Configuratio }; }, /** - * + * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getHostedCombinedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted/combined_sessions`; + getHostedSessions: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/hosted/sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -6738,117 +6050,18 @@ export const HostedApiAxiosParamCreator = function (configuration?: Configuratio options: localVarRequestOptions, }; }, + } +}; + +/** + * HostedApi - functional programming interface + */ +export const HostedApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = HostedApiAxiosParamCreator(configuration) + return { /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHostedSessions: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/hosted/sessions`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHostedSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/hosted/sessions`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * HostedApi - functional programming interface - */ -export const HostedApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = HostedApiAxiosParamCreator(configuration) - return { - /** - * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. - * @param {number} [package_id] If set, return only sessions using this car or track package ID. + * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + * @param {number} [package_id] If set, return only sessions using this car or track package ID. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -6858,28 +6071,6 @@ export const HostedApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedCombinedSessions']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedCombinedSessionsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedCombinedSessionsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. * @param {*} [options] Override http request option. @@ -6891,17 +6082,6 @@ export const HostedApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedSessions']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getHostedSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getHostedSessionsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['HostedApi.getHostedSessionsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -6920,22 +6100,6 @@ export const HostedApiFactory = function (configuration?: Configuration, basePat getHostedCombinedSessions(requestParameters: HostedApiGetHostedCombinedSessionsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getHostedCombinedSessions(requestParameters.package_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getHostedCombinedSessionsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getHostedDocs(options).then((request) => request(axios, basePath)); - }, /** * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. * @param {*} [options] Override http request option. @@ -6944,14 +6108,6 @@ export const HostedApiFactory = function (configuration?: Configuration, basePat getHostedSessions(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getHostedSessions(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getHostedSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getHostedSessionsDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -6979,24 +6135,6 @@ export class HostedApi extends BaseAPI { return HostedApiFp(this.configuration).getHostedCombinedSessions(requestParameters.package_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getHostedCombinedSessionsDocs(options?: RawAxiosRequestConfig) { - return HostedApiFp(this.configuration).getHostedCombinedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getHostedDocs(options?: RawAxiosRequestConfig) { - return HostedApiFp(this.configuration).getHostedDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. * @param {*} [options] Override http request option. @@ -7005,15 +6143,6 @@ export class HostedApi extends BaseAPI { public getHostedSessions(options?: RawAxiosRequestConfig) { return HostedApiFp(this.configuration).getHostedSessions(options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getHostedSessionsDocs(options?: RawAxiosRequestConfig) { - return HostedApiFp(this.configuration).getHostedSessionsDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -7102,39 +6231,6 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueCustomerLeagueSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/cust_league_sessions`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -7239,11 +6335,13 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} [cust_id] If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. + * @param {boolean} [include_league] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDirectoryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/directory`; + getLeagueMembership: async (cust_id?: number, include_league?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/league/membership`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -7259,6 +6357,14 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + + if (include_league !== undefined) { + localVarQueryParameter['include_league'] = include_league; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7272,11 +6378,15 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} league_id + * @param {number} [season_id] If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league`; + getLeaguePointsSystems: async (league_id: number, season_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeaguePointsSystems', 'league_id', league_id) + const localVarPath = `/data/league/get_points_systems`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -7292,6 +6402,14 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7305,11 +6423,15 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} league_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/get`; + getLeagueRoster: async (league_id: number, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeagueRoster', 'league_id', league_id) + const localVarPath = `/data/league/roster`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -7325,6 +6447,14 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; + } + + if (include_licenses !== undefined) { + localVarQueryParameter['include_licenses'] = include_licenses; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7338,46 +6468,18 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} league_id + * @param {number} season_id + * @param {boolean} [results_only] If true include only sessions for which results are available. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueGetPointsSystemsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/get_points_systems`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} [cust_id] If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. - * @param {boolean} [include_league] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueMembership: async (cust_id?: number, include_league?: boolean, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/league/membership`; + getLeagueSeasonSessions: async (league_id: number, season_id: number, results_only?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'league_id' is not null or undefined + assertParamExists('getLeagueSeasonSessions', 'league_id', league_id) + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getLeagueSeasonSessions', 'season_id', season_id) + const localVarPath = `/data/league/season_sessions`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -7393,47 +6495,18 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; + if (league_id !== undefined) { + localVarQueryParameter['league_id'] = league_id; } - if (include_league !== undefined) { - localVarQueryParameter['include_league'] = include_league; + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; } - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/membership`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; + if (results_only !== undefined) { + localVarQueryParameter['results_only'] = results_only; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7448,14 +6521,18 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio /** * * @param {number} league_id - * @param {number} [season_id] If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. + * @param {number} season_id + * @param {number} [car_class_id] + * @param {number} [car_id] If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeaguePointsSystems: async (league_id: number, season_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + getLeagueSeasonStandings: async (league_id: number, season_id: number, car_class_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'league_id' is not null or undefined - assertParamExists('getLeaguePointsSystems', 'league_id', league_id) - const localVarPath = `/data/league/get_points_systems`; + assertParamExists('getLeagueSeasonStandings', 'league_id', league_id) + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getLeagueSeasonStandings', 'season_id', season_id) + const localVarPath = `/data/league/season_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -7479,6 +6556,14 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio localVarQueryParameter['season_id'] = season_id; } + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (car_id !== undefined) { + localVarQueryParameter['car_id'] = car_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -7493,14 +6578,14 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio /** * * @param {number} league_id - * @param {boolean} [include_licenses] For faster responses, only request when necessary. + * @param {boolean} [retired] If true include seasons which are no longer active. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueRoster: async (league_id: number, include_licenses?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + getLeagueSeasons: async (league_id: number, retired?: boolean, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'league_id' is not null or undefined - assertParamExists('getLeagueRoster', 'league_id', league_id) - const localVarPath = `/data/league/roster`; + assertParamExists('getLeagueSeasons', 'league_id', league_id) + const localVarPath = `/data/league/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -7520,8 +6605,8 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio localVarQueryParameter['league_id'] = league_id; } - if (include_licenses !== undefined) { - localVarQueryParameter['include_licenses'] = include_licenses; + if (retired !== undefined) { + localVarQueryParameter['retired'] = retired; } @@ -7535,301 +6620,90 @@ export const LeagueApiAxiosParamCreator = function (configuration?: Configuratio options: localVarRequestOptions, }; }, + } +}; + +/** + * LeagueApi - functional programming interface + */ +export const LeagueApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = LeagueApiAxiosParamCreator(configuration) + return { /** * + * @param {number} league_id + * @param {boolean} [include_licenses] For faster responses, only request when necessary. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueRosterDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/roster`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getLeague(league_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeague(league_id, include_licenses, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeague']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {number} league_id - * @param {number} season_id - * @param {boolean} [results_only] If true include only sessions for which results are available. + * @param {boolean} [mine] If true, return only sessions created by this user. + * @param {number} [package_id] If set, return only sessions using this car or track package ID. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonSessions: async (league_id: number, season_id: number, results_only?: boolean, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'league_id' is not null or undefined - assertParamExists('getLeagueSeasonSessions', 'league_id', league_id) - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getLeagueSeasonSessions', 'season_id', season_id) - const localVarPath = `/data/league/season_sessions`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (league_id !== undefined) { - localVarQueryParameter['league_id'] = league_id; - } - - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (results_only !== undefined) { - localVarQueryParameter['results_only'] = results_only; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getLeagueCustomerLeagueSessions(mine?: boolean, package_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessions(mine, package_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueCustomerLeagueSessions']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {string} [search] Will search against league name, description, owner, and league ID. + * @param {string} [tag] One or more tags, comma-separated. + * @param {boolean} [restrict_to_member] If true include only leagues for which customer is a member. + * @param {boolean} [restrict_to_recruiting] If true include only leagues which are recruiting. + * @param {boolean} [restrict_to_friends] If true include only leagues owned by a friend. + * @param {boolean} [restrict_to_watched] If true include only leagues owned by a watched member. + * @param {number} [minimum_roster_count] If set include leagues with at least this number of members. + * @param {number} [maximum_roster_count] If set include leagues with no more than this number of members. + * @param {number} [lowerbound] First row of results to return. Defaults to 1. + * @param {number} [upperbound] Last row of results to return. Defaults to lowerbound + 39. + * @param {string} [sort] One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. + * @param {string} [order] One of asc or desc. Defaults to asc. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonSessionsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/season_sessions`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} league_id - * @param {number} season_id - * @param {number} [car_class_id] - * @param {number} [car_id] If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueSeasonStandings: async (league_id: number, season_id: number, car_class_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'league_id' is not null or undefined - assertParamExists('getLeagueSeasonStandings', 'league_id', league_id) - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getLeagueSeasonStandings', 'season_id', season_id) - const localVarPath = `/data/league/season_standings`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (league_id !== undefined) { - localVarQueryParameter['league_id'] = league_id; - } - - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (car_class_id !== undefined) { - localVarQueryParameter['car_class_id'] = car_class_id; - } - - if (car_id !== undefined) { - localVarQueryParameter['car_id'] = car_id; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getLeagueDirectory(search?: string, tag?: string, restrict_to_member?: boolean, restrict_to_recruiting?: boolean, restrict_to_friends?: boolean, restrict_to_watched?: boolean, minimum_roster_count?: number, maximum_roster_count?: number, lowerbound?: number, upperbound?: number, sort?: string, order?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectory(search, tag, restrict_to_member, restrict_to_recruiting, restrict_to_friends, restrict_to_watched, minimum_roster_count, maximum_roster_count, lowerbound, upperbound, sort, order, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueDirectory']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} [cust_id] If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. + * @param {boolean} [include_league] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/season_standings`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getLeagueMembership(cust_id?: number, include_league?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembership(cust_id, include_league, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueMembership']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {number} league_id - * @param {boolean} [retired] If true include seasons which are no longer active. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueSeasons: async (league_id: number, retired?: boolean, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'league_id' is not null or undefined - assertParamExists('getLeagueSeasons', 'league_id', league_id) - const localVarPath = `/data/league/seasons`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (league_id !== undefined) { - localVarQueryParameter['league_id'] = league_id; - } - - if (retired !== undefined) { - localVarQueryParameter['retired'] = retired; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * + * @param {number} [season_id] If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLeagueSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/league/seasons`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getLeaguePointsSystems(league_id: number, season_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeaguePointsSystems(league_id, season_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeaguePointsSystems']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - } -}; - -/** - * LeagueApi - functional programming interface - */ -export const LeagueApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = LeagueApiAxiosParamCreator(configuration) - return { /** * * @param {number} league_id @@ -7837,332 +6711,99 @@ export const LeagueApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeague(league_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeague(league_id, include_licenses, options); + async getLeagueRoster(league_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRoster(league_id, include_licenses, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeague']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueRoster']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {boolean} [mine] If true, return only sessions created by this user. - * @param {number} [package_id] If set, return only sessions using this car or track package ID. + * @param {number} league_id + * @param {number} season_id + * @param {boolean} [results_only] If true include only sessions for which results are available. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueCustomerLeagueSessions(mine?: boolean, package_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessions(mine, package_id, options); + async getLeagueSeasonSessions(league_id: number, season_id: number, results_only?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessions(league_id, season_id, results_only, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueCustomerLeagueSessions']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonSessions']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} league_id + * @param {number} season_id + * @param {number} [car_class_id] + * @param {number} [car_id] If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueCustomerLeagueSessionsDocs(options); + async getLeagueSeasonStandings(league_id: number, season_id: number, car_class_id?: number, car_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandings(league_id, season_id, car_class_id, car_id, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueCustomerLeagueSessionsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonStandings']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {string} [search] Will search against league name, description, owner, and league ID. - * @param {string} [tag] One or more tags, comma-separated. - * @param {boolean} [restrict_to_member] If true include only leagues for which customer is a member. - * @param {boolean} [restrict_to_recruiting] If true include only leagues which are recruiting. - * @param {boolean} [restrict_to_friends] If true include only leagues owned by a friend. - * @param {boolean} [restrict_to_watched] If true include only leagues owned by a watched member. - * @param {number} [minimum_roster_count] If set include leagues with at least this number of members. - * @param {number} [maximum_roster_count] If set include leagues with no more than this number of members. - * @param {number} [lowerbound] First row of results to return. Defaults to 1. - * @param {number} [upperbound] Last row of results to return. Defaults to lowerbound + 39. - * @param {string} [sort] One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. - * @param {string} [order] One of asc or desc. Defaults to asc. + * @param {number} league_id + * @param {boolean} [retired] If true include seasons which are no longer active. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueDirectory(search?: string, tag?: string, restrict_to_member?: boolean, restrict_to_recruiting?: boolean, restrict_to_friends?: boolean, restrict_to_watched?: boolean, minimum_roster_count?: number, maximum_roster_count?: number, lowerbound?: number, upperbound?: number, sort?: string, order?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectory(search, tag, restrict_to_member, restrict_to_recruiting, restrict_to_friends, restrict_to_watched, minimum_roster_count, maximum_roster_count, lowerbound, upperbound, sort, order, options); + async getLeagueSeasons(league_id: number, retired?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasons(league_id, retired, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueDirectory']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasons']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, + } +}; + +/** + * LeagueApi - factory interface + */ +export const LeagueApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = LeagueApiFp(configuration) + return { /** * + * @param {LeagueApiGetLeagueRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDirectoryDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueDirectoryDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getLeague(requestParameters: LeagueApiGetLeagueRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeague(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); }, /** * + * @param {LeagueApiGetLeagueCustomerLeagueSessionsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getLeagueCustomerLeagueSessions(requestParameters: LeagueApiGetLeagueCustomerLeagueSessionsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueCustomerLeagueSessions(requestParameters.mine, requestParameters.package_id, options).then((request) => request(axios, basePath)); }, /** * + * @param {LeagueApiGetLeagueDirectoryRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getLeagueGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getLeagueDirectory(requestParameters: LeagueApiGetLeagueDirectoryRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getLeagueDirectory(requestParameters.search, requestParameters.tag, requestParameters.restrict_to_member, requestParameters.restrict_to_recruiting, requestParameters.restrict_to_friends, requestParameters.restrict_to_watched, requestParameters.minimum_roster_count, requestParameters.maximum_roster_count, requestParameters.lowerbound, requestParameters.upperbound, requestParameters.sort, requestParameters.order, options).then((request) => request(axios, basePath)); }, /** * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueGetPointsSystemsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueGetPointsSystemsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} [cust_id] If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. - * @param {boolean} [include_league] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueMembership(cust_id?: number, include_league?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembership(cust_id, include_league, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueMembership']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueMembershipDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueMembershipDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} league_id - * @param {number} [season_id] If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeaguePointsSystems(league_id: number, season_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeaguePointsSystems(league_id, season_id, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeaguePointsSystems']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} league_id - * @param {boolean} [include_licenses] For faster responses, only request when necessary. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueRoster(league_id: number, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRoster(league_id, include_licenses, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueRoster']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueRosterDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueRosterDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueRosterDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} league_id - * @param {number} season_id - * @param {boolean} [results_only] If true include only sessions for which results are available. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueSeasonSessions(league_id: number, season_id: number, results_only?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessions(league_id, season_id, results_only, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonSessions']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonSessionsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonSessionsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} league_id - * @param {number} season_id - * @param {number} [car_class_id] - * @param {number} [car_id] If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueSeasonStandings(league_id: number, season_id: number, car_class_id?: number, car_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandings(league_id, season_id, car_class_id, car_id, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonStandings']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonStandingsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonStandingsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} league_id - * @param {boolean} [retired] If true include seasons which are no longer active. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueSeasons(league_id: number, retired?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasons(league_id, retired, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasons']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLeagueSeasonsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LeagueApi.getLeagueSeasonsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - } -}; - -/** - * LeagueApi - factory interface - */ -export const LeagueApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = LeagueApiFp(configuration) - return { - /** - * - * @param {LeagueApiGetLeagueRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeague(requestParameters: LeagueApiGetLeagueRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeague(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {LeagueApiGetLeagueCustomerLeagueSessionsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueCustomerLeagueSessions(requestParameters: LeagueApiGetLeagueCustomerLeagueSessionsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueCustomerLeagueSessions(requestParameters.mine, requestParameters.package_id, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {LeagueApiGetLeagueDirectoryRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueDirectory(requestParameters: LeagueApiGetLeagueDirectoryRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueDirectory(requestParameters.search, requestParameters.tag, requestParameters.restrict_to_member, requestParameters.restrict_to_recruiting, requestParameters.restrict_to_friends, requestParameters.restrict_to_watched, requestParameters.minimum_roster_count, requestParameters.maximum_roster_count, requestParameters.lowerbound, requestParameters.upperbound, requestParameters.sort, requestParameters.order, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueDirectoryDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueDirectoryDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getLeagueDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueGetDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueGetPointsSystemsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {LeagueApiGetLeagueMembershipRequest} requestParameters Request parameters. + * @param {LeagueApiGetLeagueMembershipRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getLeagueMembership(requestParameters: LeagueApiGetLeagueMembershipRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLeagueMembership(requestParameters.cust_id, requestParameters.include_league, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueMembershipDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {LeagueApiGetLeaguePointsSystemsRequest} requestParameters Request parameters. @@ -8181,14 +6822,6 @@ export const LeagueApiFactory = function (configuration?: Configuration, basePat getLeagueRoster(requestParameters: LeagueApiGetLeagueRosterRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLeagueRoster(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueRosterDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueRosterDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {LeagueApiGetLeagueSeasonSessionsRequest} requestParameters Request parameters. @@ -8198,14 +6831,6 @@ export const LeagueApiFactory = function (configuration?: Configuration, basePat getLeagueSeasonSessions(requestParameters: LeagueApiGetLeagueSeasonSessionsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLeagueSeasonSessions(requestParameters.league_id, requestParameters.season_id, requestParameters.results_only, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueSeasonSessionsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {LeagueApiGetLeagueSeasonStandingsRequest} requestParameters Request parameters. @@ -8215,14 +6840,6 @@ export const LeagueApiFactory = function (configuration?: Configuration, basePat getLeagueSeasonStandings(requestParameters: LeagueApiGetLeagueSeasonStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLeagueSeasonStandings(requestParameters.league_id, requestParameters.season_id, requestParameters.car_class_id, requestParameters.car_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueSeasonStandingsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {LeagueApiGetLeagueSeasonsRequest} requestParameters Request parameters. @@ -8232,14 +6849,6 @@ export const LeagueApiFactory = function (configuration?: Configuration, basePat getLeagueSeasons(requestParameters: LeagueApiGetLeagueSeasonsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLeagueSeasons(requestParameters.league_id, requestParameters.retired, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLeagueSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLeagueSeasonsDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -8437,15 +7046,6 @@ export class LeagueApi extends BaseAPI { return LeagueApiFp(this.configuration).getLeagueCustomerLeagueSessions(requestParameters.mine, requestParameters.package_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueCustomerLeagueSessionsDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueCustomerLeagueSessionsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {LeagueApiGetLeagueDirectoryRequest} requestParameters Request parameters. @@ -8456,42 +7056,6 @@ export class LeagueApi extends BaseAPI { return LeagueApiFp(this.configuration).getLeagueDirectory(requestParameters.search, requestParameters.tag, requestParameters.restrict_to_member, requestParameters.restrict_to_recruiting, requestParameters.restrict_to_friends, requestParameters.restrict_to_watched, requestParameters.minimum_roster_count, requestParameters.maximum_roster_count, requestParameters.lowerbound, requestParameters.upperbound, requestParameters.sort, requestParameters.order, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueDirectoryDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueDirectoryDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueGetDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueGetDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueGetPointsSystemsDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueGetPointsSystemsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {LeagueApiGetLeagueMembershipRequest} requestParameters Request parameters. @@ -8502,15 +7066,6 @@ export class LeagueApi extends BaseAPI { return LeagueApiFp(this.configuration).getLeagueMembership(requestParameters.cust_id, requestParameters.include_league, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueMembershipDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueMembershipDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {LeagueApiGetLeaguePointsSystemsRequest} requestParameters Request parameters. @@ -8531,15 +7086,6 @@ export class LeagueApi extends BaseAPI { return LeagueApiFp(this.configuration).getLeagueRoster(requestParameters.league_id, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueRosterDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueRosterDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {LeagueApiGetLeagueSeasonSessionsRequest} requestParameters Request parameters. @@ -8550,15 +7096,6 @@ export class LeagueApi extends BaseAPI { return LeagueApiFp(this.configuration).getLeagueSeasonSessions(requestParameters.league_id, requestParameters.season_id, requestParameters.results_only, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueSeasonSessionsDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueSeasonSessionsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {LeagueApiGetLeagueSeasonStandingsRequest} requestParameters Request parameters. @@ -8569,15 +7106,6 @@ export class LeagueApi extends BaseAPI { return LeagueApiFp(this.configuration).getLeagueSeasonStandings(requestParameters.league_id, requestParameters.season_id, requestParameters.car_class_id, requestParameters.car_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueSeasonStandingsDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueSeasonStandingsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {LeagueApiGetLeagueSeasonsRequest} requestParameters Request parameters. @@ -8587,15 +7115,6 @@ export class LeagueApi extends BaseAPI { public getLeagueSeasons(requestParameters: LeagueApiGetLeagueSeasonsRequest, options?: RawAxiosRequestConfig) { return LeagueApiFp(this.configuration).getLeagueSeasons(requestParameters.league_id, requestParameters.retired, options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLeagueSeasonsDocs(options?: RawAxiosRequestConfig) { - return LeagueApiFp(this.configuration).getLeagueSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -8662,72 +7181,6 @@ export const LookupApiAxiosParamCreator = function (configuration?: Configuratio - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupCountriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/countries`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -8787,8 +7240,8 @@ export const LookupApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupDriversDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/drivers`; + getLookupFlairs: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/lookup/flairs`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -8820,8 +7273,8 @@ export const LookupApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupFlairs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/lookup/flairs`; + getLookupLicenses: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/lookup/licenses`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -8848,195 +7301,41 @@ export const LookupApiAxiosParamCreator = function (configuration?: Configuratio options: localVarRequestOptions, }; }, + } +}; + +/** + * LookupApi - functional programming interface + */ +export const LookupApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = LookupApiAxiosParamCreator(configuration) + return { /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupFlairsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/flairs`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getLookup(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookup(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookup']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getLookupGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getLookupCountries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountries(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupCountries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupLicenses: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/lookup/licenses`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupLicensesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/lookup/licenses`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * LookupApi - functional programming interface - */ -export const LookupApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = LookupApiAxiosParamCreator(configuration) - return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookup(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookup(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookup']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookupCountries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountries(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupCountries']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookupCountriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupCountriesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupCountriesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookupDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {string} search_term A cust_id or partial name for which to search. - * @param {number} [league_id] Narrow the search to the roster of the given league. + * @param {string} search_term A cust_id or partial name for which to search. + * @param {number} [league_id] Narrow the search to the roster of the given league. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -9046,17 +7345,6 @@ export const LookupApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupDrivers']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookupDriversDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupDriversDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupDriversDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {*} [options] Override http request option. @@ -9068,28 +7356,6 @@ export const LookupApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupFlairs']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookupFlairsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupFlairsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupFlairsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookupGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {*} [options] Override http request option. @@ -9101,17 +7367,6 @@ export const LookupApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupLicenses']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getLookupLicensesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getLookupLicensesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['LookupApi.getLookupLicensesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -9137,22 +7392,6 @@ export const LookupApiFactory = function (configuration?: Configuration, basePat getLookupCountries(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLookupCountries(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupCountriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupCountriesDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getLookupDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {LookupApiGetLookupDriversRequest} requestParameters Request parameters. @@ -9162,14 +7401,6 @@ export const LookupApiFactory = function (configuration?: Configuration, basePat getLookupDrivers(requestParameters: LookupApiGetLookupDriversRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLookupDrivers(requestParameters.search_term, requestParameters.league_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupDriversDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupDriversDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {*} [options] Override http request option. @@ -9178,22 +7409,6 @@ export const LookupApiFactory = function (configuration?: Configuration, basePat getLookupFlairs(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLookupFlairs(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupFlairsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupFlairsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupGetDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {*} [options] Override http request option. @@ -9202,14 +7417,6 @@ export const LookupApiFactory = function (configuration?: Configuration, basePat getLookupLicenses(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getLookupLicenses(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getLookupLicensesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getLookupLicensesDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -9250,24 +7457,6 @@ export class LookupApi extends BaseAPI { return LookupApiFp(this.configuration).getLookupCountries(options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLookupCountriesDocs(options?: RawAxiosRequestConfig) { - return LookupApiFp(this.configuration).getLookupCountriesDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLookupDocs(options?: RawAxiosRequestConfig) { - return LookupApiFp(this.configuration).getLookupDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {LookupApiGetLookupDriversRequest} requestParameters Request parameters. @@ -9278,15 +7467,6 @@ export class LookupApi extends BaseAPI { return LookupApiFp(this.configuration).getLookupDrivers(requestParameters.search_term, requestParameters.league_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLookupDriversDocs(options?: RawAxiosRequestConfig) { - return LookupApiFp(this.configuration).getLookupDriversDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {*} [options] Override http request option. @@ -9296,24 +7476,6 @@ export class LookupApi extends BaseAPI { return LookupApiFp(this.configuration).getLookupFlairs(options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLookupFlairsDocs(options?: RawAxiosRequestConfig) { - return LookupApiFp(this.configuration).getLookupFlairsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLookupGetDocs(options?: RawAxiosRequestConfig) { - return LookupApiFp(this.configuration).getLookupGetDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {*} [options] Override http request option. @@ -9322,15 +7484,6 @@ export class LookupApi extends BaseAPI { public getLookupLicenses(options?: RawAxiosRequestConfig) { return LookupApiFp(this.configuration).getLookupLicenses(options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getLookupLicensesDocs(options?: RawAxiosRequestConfig) { - return LookupApiFp(this.configuration).getLookupLicensesDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -9432,11 +7585,12 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardInstancesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/award_instances`; + getMemberAwards: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/awards`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -9452,6 +7606,10 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -9465,12 +7623,18 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road + * @param {number} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwards: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/member/awards`; + getMemberChartData: async (category_id: number, chart_type: number, cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'category_id' is not null or undefined + assertParamExists('getMemberChartData', 'category_id', category_id) + // verify required parameter 'chart_type' is not null or undefined + assertParamExists('getMemberChartData', 'chart_type', chart_type) + const localVarPath = `/data/member/chart_data`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -9490,6 +7654,14 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio localVarQueryParameter['cust_id'] = cust_id; } + if (category_id !== undefined) { + localVarQueryParameter['category_id'] = category_id; + } + + if (chart_type !== undefined) { + localVarQueryParameter['chart_type'] = chart_type; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -9506,8 +7678,8 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberAwardsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/awards`; + getMemberInfo: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/info`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -9536,18 +7708,11 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio }, /** * - * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road - * @param {number} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR - * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberChartData: async (category_id: number, chart_type: number, cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'category_id' is not null or undefined - assertParamExists('getMemberChartData', 'category_id', category_id) - // verify required parameter 'chart_type' is not null or undefined - assertParamExists('getMemberChartData', 'chart_type', chart_type) - const localVarPath = `/data/member/chart_data`; + getMemberParticipationCredits: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/participation_credits`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -9563,18 +7728,6 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - - if (category_id !== undefined) { - localVarQueryParameter['category_id'] = category_id; - } - - if (chart_type !== undefined) { - localVarQueryParameter['chart_type'] = chart_type; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -9588,11 +7741,13 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @summary Gets a requested user\'s profile. + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/chart_data`; + getMemberProfile: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/member/profile`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -9608,6 +7763,10 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -9619,435 +7778,88 @@ export const MemberApiAxiosParamCreator = function (configuration?: Configuratio options: localVarRequestOptions, }; }, + } +}; + +/** + * MemberApi - functional programming interface + */ +export const MemberApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = MemberApiAxiosParamCreator(configuration) + return { /** * + * @param {string} cust_ids Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 + * @param {boolean} [include_licenses] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getMember(cust_ids: string, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMember(cust_ids, include_licenses, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMember']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} award_id + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getMemberAwardInstances(award_id: number, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstances(award_id, cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwardInstances']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberInfo: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/member/info`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getMemberAwards(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwards(cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwards']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road + * @param {number} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberInfoDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/info`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getMemberChartData(category_id: number, chart_type: number, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartData(category_id, chart_type, cust_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberChartData']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberParticipationCredits: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/member/participation_credits`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getMemberInfo(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfo(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberInfo']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberParticipationCreditsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/participation_credits`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets a requested user\'s profile. - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberProfile: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/member/profile`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberProfileDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/member/profile`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * MemberApi - functional programming interface - */ -export const MemberApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = MemberApiAxiosParamCreator(configuration) - return { - /** - * - * @param {string} cust_ids Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 - * @param {boolean} [include_licenses] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMember(cust_ids: string, include_licenses?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMember(cust_ids, include_licenses, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMember']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} award_id - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberAwardInstances(award_id: number, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstances(award_id, cust_id, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwardInstances']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardInstancesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwardInstancesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberAwards(cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwards(cust_id, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwards']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberAwardsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberAwardsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberAwardsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} category_id 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road - * @param {number} chart_type 1 - iRating; 2 - TT Rating; 3 - License/SR - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberChartData(category_id: number, chart_type: number, cust_id?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartData(category_id, chart_type, cust_id, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberChartData']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberChartDataDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberChartDataDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberInfo(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfo(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberInfo']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberInfoDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberInfoDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberInfoDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberParticipationCredits(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCredits(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberParticipationCredits']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCreditsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberParticipationCreditsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + async getMemberParticipationCredits(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberParticipationCredits(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberParticipationCredits']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * @@ -10062,17 +7874,6 @@ export const MemberApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberProfile']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getMemberProfileDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getMemberProfileDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['MemberApi.getMemberProfileDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -10100,14 +7901,6 @@ export const MemberApiFactory = function (configuration?: Configuration, basePat getMemberAwardInstances(requestParameters: MemberApiGetMemberAwardInstancesRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getMemberAwardInstances(requestParameters.award_id, requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberAwardInstancesDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {MemberApiGetMemberAwardsRequest} requestParameters Request parameters. @@ -10117,14 +7910,6 @@ export const MemberApiFactory = function (configuration?: Configuration, basePat getMemberAwards(requestParameters: MemberApiGetMemberAwardsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getMemberAwards(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberAwardsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberAwardsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {MemberApiGetMemberChartDataRequest} requestParameters Request parameters. @@ -10139,74 +7924,26 @@ export const MemberApiFactory = function (configuration?: Configuration, basePat * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberChartDataDocs(options).then((request) => request(axios, basePath)); + getMemberInfo(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberInfo(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getMemberDocs(options).then((request) => request(axios, basePath)); + getMemberParticipationCredits(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberParticipationCredits(options).then((request) => request(axios, basePath)); }, /** * + * @summary Gets a requested user\'s profile. + * @param {MemberApiGetMemberProfileRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getMemberGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberGetDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberInfo(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberInfo(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberInfoDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberInfoDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberParticipationCredits(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberParticipationCredits(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberParticipationCreditsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a requested user\'s profile. - * @param {MemberApiGetMemberProfileRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberProfile(requestParameters: MemberApiGetMemberProfileRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberProfile(requestParameters.cust_id, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getMemberProfileDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getMemberProfileDocs(options).then((request) => request(axios, basePath)); + getMemberProfile(requestParameters: MemberApiGetMemberProfileRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getMemberProfile(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, }; }; @@ -10299,15 +8036,6 @@ export class MemberApi extends BaseAPI { return MemberApiFp(this.configuration).getMemberAwardInstances(requestParameters.award_id, requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberAwardInstancesDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberAwardInstancesDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {MemberApiGetMemberAwardsRequest} requestParameters Request parameters. @@ -10318,15 +8046,6 @@ export class MemberApi extends BaseAPI { return MemberApiFp(this.configuration).getMemberAwards(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberAwardsDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberAwardsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {MemberApiGetMemberChartDataRequest} requestParameters Request parameters. @@ -10337,33 +8056,6 @@ export class MemberApi extends BaseAPI { return MemberApiFp(this.configuration).getMemberChartData(requestParameters.category_id, requestParameters.chart_type, requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberChartDataDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberChartDataDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberGetDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberGetDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {*} [options] Override http request option. @@ -10373,15 +8065,6 @@ export class MemberApi extends BaseAPI { return MemberApiFp(this.configuration).getMemberInfo(options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberInfoDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberInfoDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {*} [options] Override http request option. @@ -10391,15 +8074,6 @@ export class MemberApi extends BaseAPI { return MemberApiFp(this.configuration).getMemberParticipationCredits(options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberParticipationCreditsDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberParticipationCreditsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @summary Gets a requested user\'s profile. @@ -10410,15 +8084,6 @@ export class MemberApi extends BaseAPI { public getMemberProfile(requestParameters: MemberApiGetMemberProfileRequest = {}, options?: RawAxiosRequestConfig) { return MemberApiFp(this.configuration).getMemberProfile(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getMemberProfileDocs(options?: RawAxiosRequestConfig) { - return MemberApiFp(this.configuration).getMemberProfileDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -10464,39 +8129,6 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -10544,72 +8176,6 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsEventLogDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/event_log`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -10657,39 +8223,6 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsLapChartDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/lap_chart_data`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -10747,39 +8280,6 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsLapDataDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/lap_data`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -10886,39 +8386,6 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsSearchHostedDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/search_hosted`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -11025,39 +8492,6 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsSearchSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/search_series`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -11108,39 +8542,6 @@ export const ResultsApiAxiosParamCreator = function (configuration?: Configurati - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/results/season_results`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -11172,17 +8573,6 @@ export const ResultsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResults']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} subsession_id @@ -11196,28 +8586,6 @@ export const ResultsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsEventLog']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsEventLogDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsEventLogDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsEventLogDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} subsession_id @@ -11231,17 +8599,6 @@ export const ResultsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapChartData']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapChartDataDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapChartDataDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} subsession_id @@ -11257,17 +8614,6 @@ export const ResultsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapData']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsLapDataDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsLapDataDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsLapDataDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {string} [start_range_begin] Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". @@ -11292,17 +8638,6 @@ export const ResultsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchHosted']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchHostedDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchHostedDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} [season_year] Required when using season_quarter. @@ -11327,17 +8662,6 @@ export const ResultsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchSeries']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSearchSeriesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSearchSeriesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} season_id @@ -11352,17 +8676,6 @@ export const ResultsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSeasonResults']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getResultsSeasonResultsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['ResultsApi.getResultsSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -11381,14 +8694,6 @@ export const ResultsApiFactory = function (configuration?: Configuration, basePa getResults(requestParameters: ResultsApiGetResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getResults(requestParameters.subsession_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getResultsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {ResultsApiGetResultsEventLogRequest} requestParameters Request parameters. @@ -11398,22 +8703,6 @@ export const ResultsApiFactory = function (configuration?: Configuration, basePa getResultsEventLog(requestParameters: ResultsApiGetResultsEventLogRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getResultsEventLog(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsEventLogDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsEventLogDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsGetDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {ResultsApiGetResultsLapChartDataRequest} requestParameters Request parameters. @@ -11423,14 +8712,6 @@ export const ResultsApiFactory = function (configuration?: Configuration, basePa getResultsLapChartData(requestParameters: ResultsApiGetResultsLapChartDataRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getResultsLapChartData(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsLapChartDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsLapChartDataDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {ResultsApiGetResultsLapDataRequest} requestParameters Request parameters. @@ -11440,14 +8721,6 @@ export const ResultsApiFactory = function (configuration?: Configuration, basePa getResultsLapData(requestParameters: ResultsApiGetResultsLapDataRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getResultsLapData(requestParameters.subsession_id, requestParameters.simsession_number, requestParameters.cust_id, requestParameters.team_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsLapDataDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsLapDataDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {ResultsApiGetResultsSearchHostedRequest} requestParameters Request parameters. @@ -11457,14 +8730,6 @@ export const ResultsApiFactory = function (configuration?: Configuration, basePa getResultsSearchHosted(requestParameters: ResultsApiGetResultsSearchHostedRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getResultsSearchHosted(requestParameters.start_range_begin, requestParameters.start_range_end, requestParameters.finish_range_begin, requestParameters.finish_range_end, requestParameters.cust_id, requestParameters.team_id, requestParameters.host_cust_id, requestParameters.session_name, requestParameters.league_id, requestParameters.league_season_id, requestParameters.car_id, requestParameters.track_id, requestParameters.category_ids, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsSearchHostedDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsSearchHostedDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {ResultsApiGetResultsSearchSeriesRequest} requestParameters Request parameters. @@ -11476,28 +8741,12 @@ export const ResultsApiFactory = function (configuration?: Configuration, basePa }, /** * + * @param {ResultsApiGetResultsSeasonResultsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsSearchSeriesDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {ResultsApiGetResultsSeasonResultsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsSeasonResults(requestParameters: ResultsApiGetResultsSeasonResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsSeasonResults(requestParameters.season_id, requestParameters.event_type, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getResultsSeasonResultsDocs(options).then((request) => request(axios, basePath)); + getResultsSeasonResults(requestParameters: ResultsApiGetResultsSeasonResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getResultsSeasonResults(requestParameters.season_id, requestParameters.event_type, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); }, }; }; @@ -11728,15 +8977,6 @@ export class ResultsApi extends BaseAPI { return ResultsApiFp(this.configuration).getResults(requestParameters.subsession_id, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {ResultsApiGetResultsEventLogRequest} requestParameters Request parameters. @@ -11747,24 +8987,6 @@ export class ResultsApi extends BaseAPI { return ResultsApiFp(this.configuration).getResultsEventLog(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsEventLogDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsEventLogDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsGetDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsGetDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {ResultsApiGetResultsLapChartDataRequest} requestParameters Request parameters. @@ -11775,15 +8997,6 @@ export class ResultsApi extends BaseAPI { return ResultsApiFp(this.configuration).getResultsLapChartData(requestParameters.subsession_id, requestParameters.simsession_number, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsLapChartDataDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsLapChartDataDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {ResultsApiGetResultsLapDataRequest} requestParameters Request parameters. @@ -11794,15 +9007,6 @@ export class ResultsApi extends BaseAPI { return ResultsApiFp(this.configuration).getResultsLapData(requestParameters.subsession_id, requestParameters.simsession_number, requestParameters.cust_id, requestParameters.team_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsLapDataDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsLapDataDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {ResultsApiGetResultsSearchHostedRequest} requestParameters Request parameters. @@ -11813,15 +9017,6 @@ export class ResultsApi extends BaseAPI { return ResultsApiFp(this.configuration).getResultsSearchHosted(requestParameters.start_range_begin, requestParameters.start_range_end, requestParameters.finish_range_begin, requestParameters.finish_range_end, requestParameters.cust_id, requestParameters.team_id, requestParameters.host_cust_id, requestParameters.session_name, requestParameters.league_id, requestParameters.league_season_id, requestParameters.car_id, requestParameters.track_id, requestParameters.category_ids, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsSearchHostedDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsSearchHostedDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {ResultsApiGetResultsSearchSeriesRequest} requestParameters Request parameters. @@ -11832,15 +9027,6 @@ export class ResultsApi extends BaseAPI { return ResultsApiFp(this.configuration).getResultsSearchSeries(requestParameters.season_year, requestParameters.season_quarter, requestParameters.start_range_begin, requestParameters.start_range_end, requestParameters.finish_range_begin, requestParameters.finish_range_end, requestParameters.cust_id, requestParameters.team_id, requestParameters.series_id, requestParameters.race_week_num, requestParameters.official_only, requestParameters.event_types, requestParameters.category_ids, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsSearchSeriesDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsSearchSeriesDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {ResultsApiGetResultsSeasonResultsRequest} requestParameters Request parameters. @@ -11850,15 +9036,6 @@ export class ResultsApi extends BaseAPI { public getResultsSeasonResults(requestParameters: ResultsApiGetResultsSeasonResultsRequest, options?: RawAxiosRequestConfig) { return ResultsApiFp(this.configuration).getResultsSeasonResults(requestParameters.season_id, requestParameters.event_type, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getResultsSeasonResultsDocs(options?: RawAxiosRequestConfig) { - return ResultsApiFp(this.configuration).getResultsSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -11868,39 +9045,6 @@ export class ResultsApi extends BaseAPI { */ export const SeasonApiAxiosParamCreator = function (configuration?: Configuration) { return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, /** * * @param {number} season_year @@ -11939,39 +9083,6 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/list`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -12017,39 +9128,6 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonRaceGuideDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/race_guide`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -12131,72 +9209,6 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonSpectatorSubsessionIdsDetailDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids_detail`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonSpectatorSubsessionIdsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/season/spectator_subsessionids`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -12215,17 +9227,6 @@ export const SeasonApiAxiosParamCreator = function (configuration?: Configuratio export const SeasonApiFp = function(configuration?: Configuration) { const localVarAxiosParamCreator = SeasonApiAxiosParamCreator(configuration) return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeasonDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} season_year @@ -12241,19 +9242,8 @@ export const SeasonApiFp = function(configuration?: Configuration) { }, /** * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonListDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonListDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {string} [from] ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. - * @param {boolean} [include_end_after_from] Include sessions which start before \'from\' but end after. + * @param {string} [from] ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. + * @param {boolean} [include_end_after_from] Include sessions which start before \'from\' but end after. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -12263,17 +9253,6 @@ export const SeasonApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonRaceGuide']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonRaceGuideDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonRaceGuideDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {Array} [event_types] Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 @@ -12299,28 +9278,6 @@ export const SeasonApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonSpectatorSubsessionIdsDetail']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIdsDetailDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonSpectatorSubsessionIdsDetailDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeasonSpectatorSubsessionIdsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeasonApi.getSeasonSpectatorSubsessionIdsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -12330,14 +9287,6 @@ export const SeasonApiFp = function(configuration?: Configuration) { export const SeasonApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { const localVarFp = SeasonApiFp(configuration) return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getSeasonDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {SeasonApiGetSeasonListRequest} requestParameters Request parameters. @@ -12347,14 +9296,6 @@ export const SeasonApiFactory = function (configuration?: Configuration, basePat getSeasonList(requestParameters: SeasonApiGetSeasonListRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeasonList(requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeasonListDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {SeasonApiGetSeasonRaceGuideRequest} requestParameters Request parameters. @@ -12364,14 +9305,6 @@ export const SeasonApiFactory = function (configuration?: Configuration, basePat getSeasonRaceGuide(requestParameters: SeasonApiGetSeasonRaceGuideRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeasonRaceGuide(requestParameters.from, requestParameters.include_end_after_from, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeasonRaceGuideDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {SeasonApiGetSeasonSpectatorSubsessionIdsRequest} requestParameters Request parameters. @@ -12390,22 +9323,6 @@ export const SeasonApiFactory = function (configuration?: Configuration, basePat getSeasonSpectatorSubsessionIdsDetail(requestParameters: SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeasonSpectatorSubsessionIdsDetail(requestParameters.event_types, requestParameters.season_ids, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeasonSpectatorSubsessionIdsDetailDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeasonSpectatorSubsessionIdsDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -12462,15 +9379,6 @@ export interface SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest { * SeasonApi - object-oriented interface */ export class SeasonApi extends BaseAPI { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeasonDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {SeasonApiGetSeasonListRequest} requestParameters Request parameters. @@ -12481,15 +9389,6 @@ export class SeasonApi extends BaseAPI { return SeasonApiFp(this.configuration).getSeasonList(requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeasonListDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {SeasonApiGetSeasonRaceGuideRequest} requestParameters Request parameters. @@ -12500,15 +9399,6 @@ export class SeasonApi extends BaseAPI { return SeasonApiFp(this.configuration).getSeasonRaceGuide(requestParameters.from, requestParameters.include_end_after_from, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeasonRaceGuideDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonRaceGuideDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {SeasonApiGetSeasonSpectatorSubsessionIdsRequest} requestParameters Request parameters. @@ -12528,24 +9418,6 @@ export class SeasonApi extends BaseAPI { public getSeasonSpectatorSubsessionIdsDetail(requestParameters: SeasonApiGetSeasonSpectatorSubsessionIdsDetailRequest = {}, options?: RawAxiosRequestConfig) { return SeasonApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDetail(requestParameters.event_types, requestParameters.season_ids, options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeasonSpectatorSubsessionIdsDetailDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDetailDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeasonSpectatorSubsessionIdsDocs(options?: RawAxiosRequestConfig) { - return SeasonApiFp(this.configuration).getSeasonSpectatorSubsessionIdsDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -12623,11 +9495,14 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} series_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/assets`; + getSeriesPastSeasons: async (series_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'series_id' is not null or undefined + assertParamExists('getSeriesPastSeasons', 'series_id', series_id) + const localVarPath = `/data/series/past_seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12643,39 +9518,10 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; + if (series_id !== undefined) { + localVarQueryParameter['series_id'] = series_id; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12689,11 +9535,14 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {boolean} [include_series] + * @param {number} [season_year] + * @param {number} [season_quarter] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/get`; + getSeriesSeasonList: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/season_list`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12709,44 +9558,16 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} series_id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesPastSeasons: async (series_id: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'series_id' is not null or undefined - assertParamExists('getSeriesPastSeasons', 'series_id', series_id) - const localVarPath = `/data/series/past_seasons`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; + if (include_series !== undefined) { + localVarQueryParameter['include_series'] = include_series; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_year !== undefined) { + localVarQueryParameter['season_year'] = season_year; + } - if (series_id !== undefined) { - localVarQueryParameter['series_id'] = series_id; + if (season_quarter !== undefined) { + localVarQueryParameter['season_quarter'] = season_quarter; } @@ -12762,11 +9583,14 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio }, /** * + * @param {number} season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesPastSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/past_seasons`; + getSeriesSeasonSchedule: async (season_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getSeriesSeasonSchedule', 'season_id', season_id) + const localVarPath = `/data/series/season_schedule`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12782,6 +9606,10 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -12796,13 +9624,13 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio /** * * @param {boolean} [include_series] - * @param {number} [season_year] - * @param {number} [season_quarter] + * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonList: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/season_list`; + getSeriesSeasons: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/seasons`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12846,8 +9674,8 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonListDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_list`; + getSeriesStatsSeries: async (options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/series/stats_series`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -12874,508 +9702,152 @@ export const SeriesApiAxiosParamCreator = function (configuration?: Configuratio options: localVarRequestOptions, }; }, + } +}; + +/** + * SeriesApi - functional programming interface + */ +export const SeriesApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = SeriesApiAxiosParamCreator(configuration) + return { /** * - * @param {number} season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonSchedule: async (season_id: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getSeriesSeasonSchedule', 'season_id', season_id) - const localVarPath = `/data/series/season_schedule`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeries(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonScheduleDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/season_schedule`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getSeriesAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssets(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesAssets']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + /** + * + * @param {number} series_id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async getSeriesPastSeasons(series_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasons(series_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesPastSeasons']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {boolean} [include_series] - * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. - * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {number} [season_year] + * @param {number} [season_quarter] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasons: async (include_series?: boolean, season_year?: number, season_quarter?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/seasons`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (include_series !== undefined) { - localVarQueryParameter['include_series'] = include_series; - } - - if (season_year !== undefined) { - localVarQueryParameter['season_year'] = season_year; - } - - if (season_quarter !== undefined) { - localVarQueryParameter['season_quarter'] = season_quarter; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getSeriesSeasonList(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonList(include_series, season_year, season_quarter, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonList']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {number} season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesSeasonsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/seasons`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getSeriesSeasonSchedule(season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonSchedule(season_id, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonSchedule']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * + * @param {boolean} [include_series] + * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. + * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesStatsSeries: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/series/stats_series`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getSeriesSeasons(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasons(include_series, season_year, season_quarter, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasons']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getSeriesStatsSeriesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/series/stats_series`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; + async getSeriesStatsSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeries(options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesStatsSeries']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, } }; /** - * SeriesApi - functional programming interface + * SeriesApi - factory interface */ -export const SeriesApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = SeriesApiAxiosParamCreator(configuration) +export const SeriesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = SeriesApiFp(configuration) return { /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeries(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeries']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getSeries(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeries(options).then((request) => request(axios, basePath)); }, /** * * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesAssets(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssets(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesAssets']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getSeriesAssets(options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesAssets(options).then((request) => request(axios, basePath)); }, /** * + * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesAssetsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesAssetsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(axios, basePath)); }, /** * + * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); }, /** * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} series_id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesPastSeasons(series_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasons(series_id, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesPastSeasons']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesPastSeasonsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesPastSeasonsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {boolean} [include_series] - * @param {number} [season_year] - * @param {number} [season_quarter] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesSeasonList(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonList(include_series, season_year, season_quarter, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonList']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesSeasonListDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonListDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonListDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {number} season_id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesSeasonSchedule(season_id: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonSchedule(season_id, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonSchedule']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonScheduleDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonScheduleDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {boolean} [include_series] - * @param {number} [season_year] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. - * @param {number} [season_quarter] To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesSeasons(include_series?: boolean, season_year?: number, season_quarter?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasons(include_series, season_year, season_quarter, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasons']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesSeasonsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesSeasonsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesSeasonsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesStatsSeries(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeries(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesStatsSeries']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSeriesStatsSeriesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['SeriesApi.getSeriesStatsSeriesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - } -}; - -/** - * SeriesApi - factory interface - */ -export const SeriesApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = SeriesApiFp(configuration) - return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeries(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeries(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesAssets(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesAssets(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesAssetsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getSeriesDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesGetDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesPastSeasonsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesSeasonListDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesSeasonListDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. + * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesSeasonScheduleDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. @@ -13385,14 +9857,6 @@ export const SeriesApiFactory = function (configuration?: Configuration, basePat getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesSeasonsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesSeasonsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {*} [options] Override http request option. @@ -13401,14 +9865,6 @@ export const SeriesApiFactory = function (configuration?: Configuration, basePat getSeriesStatsSeries(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getSeriesStatsSeries(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getSeriesStatsSeriesDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -13478,553 +9934,70 @@ export class SeriesApi extends BaseAPI { /** * + * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesAssetsDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesAssetsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(this.axios, this.basePath)); } /** * + * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesGetDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesGetDocs(options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); } /** * - * @param {SeriesApiGetSeriesPastSeasonsRequest} requestParameters Request parameters. + * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - public getSeriesPastSeasons(requestParameters: SeriesApiGetSeriesPastSeasonsRequest, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesPastSeasons(requestParameters.series_id, options).then((request) => request(this.axios, this.basePath)); + public getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesPastSeasonsDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesPastSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {SeriesApiGetSeriesSeasonListRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesSeasonList(requestParameters: SeriesApiGetSeriesSeasonListRequest = {}, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasonList(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesSeasonListDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasonListDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {SeriesApiGetSeriesSeasonScheduleRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesSeasonSchedule(requestParameters: SeriesApiGetSeriesSeasonScheduleRequest, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasonSchedule(requestParameters.season_id, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesSeasonScheduleDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasonScheduleDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesSeasonsDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesSeasonsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesStatsSeries(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesStatsSeries(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getSeriesStatsSeriesDocs(options?: RawAxiosRequestConfig) { - return SeriesApiFp(this.configuration).getSeriesStatsSeriesDocs(options).then((request) => request(this.axios, this.basePath)); - } -} - - - -/** - * StatsApi - axios parameter creator - */ -export const StatsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberBests: async (cust_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_bests`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - - if (car_id !== undefined) { - localVarQueryParameter['car_id'] = car_id; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberBestsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_bests`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberCareer: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_career`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberCareerDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_career`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} season_id - * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberDivision: async (season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsMemberDivision', 'season_id', season_id) - // verify required parameter 'event_type' is not null or undefined - assertParamExists('getStatsMemberDivision', 'event_type', event_type) - const localVarPath = `/data/stats/member_division`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (event_type !== undefined) { - localVarQueryParameter['event_type'] = event_type; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberDivisionDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_division`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. - * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberRecap: async (cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_recap`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - - if (year !== undefined) { - localVarQueryParameter['year'] = year; - } - - if (season !== undefined) { - localVarQueryParameter['season'] = season; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberRecapDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recap`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} [cust_id] Defaults to the authenticated member. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberRecentRaces: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_recent_races`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (cust_id !== undefined) { - localVarQueryParameter['cust_id'] = cust_id; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberRecentRacesDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_recent_races`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; + /** + * + * @param {SeriesApiGetSeriesSeasonsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesSeasons(requestParameters: SeriesApiGetSeriesSeasonsRequest = {}, options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesSeasons(requestParameters.include_series, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); + } - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public getSeriesStatsSeries(options?: RawAxiosRequestConfig) { + return SeriesApiFp(this.configuration).getSeriesStatsSeries(options).then((request) => request(this.axios, this.basePath)); + } +} - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, +/** + * StatsApi - axios parameter creator + */ +export const StatsApiAxiosParamCreator = function (configuration?: Configuration) { + return { /** * * @param {number} [cust_id] Defaults to the authenticated member. + * @param {number} [car_id] First call should exclude car_id; use cars_driven list in return for subsequent calls. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberSummary: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_summary`; + getStatsMemberBests: async (cust_id?: number, car_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_bests`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14044,39 +10017,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['cust_id'] = cust_id; } - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberSummaryDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_summary`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; + if (car_id !== undefined) { + localVarQueryParameter['car_id'] = car_id; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14094,8 +10038,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsMemberYearly: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/stats/member_yearly`; + getStatsMemberCareer: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_career`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14117,39 +10061,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberYearlyDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/member_yearly`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -14162,18 +10073,16 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration /** * * @param {number} season_id - * @param {number} car_class_id - * @param {IracingDivision} [division] - * @param {number} [race_week_num] The first race week of a season is 0. + * @param {GetStatsMemberDivisionEventTypeEnum} event_type The event type code for the division type: 4 - Time Trial; 5 - Race * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonDriverStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + getStatsMemberDivision: async (season_id: number, event_type: GetStatsMemberDivisionEventTypeEnum, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonDriverStandings', 'season_id', season_id) - // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonDriverStandings', 'car_class_id', car_class_id) - const localVarPath = `/data/stats/season_driver_standings`; + assertParamExists('getStatsMemberDivision', 'season_id', season_id) + // verify required parameter 'event_type' is not null or undefined + assertParamExists('getStatsMemberDivision', 'event_type', event_type) + const localVarPath = `/data/stats/member_division`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14193,51 +10102,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['season_id'] = season_id; } - if (car_class_id !== undefined) { - localVarQueryParameter['car_class_id'] = car_class_id; - } - - if (division !== undefined) { - localVarQueryParameter['division'] = division; - } - - if (race_week_num !== undefined) { - localVarQueryParameter['race_week_num'] = race_week_num; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsSeasonDriverStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_driver_standings`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; + if (event_type !== undefined) { + localVarQueryParameter['event_type'] = event_type; } - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14251,21 +10119,14 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {number} race_week_num The first race week of a season is 0. - * @param {IracingDivision} [division] + * @param {number} [cust_id] Defaults to the authenticated member. + * @param {GetStatsMemberRecapYearEnum} [year] Season year; if not supplied the current calendar year (UTC) is used. + * @param {number} [season] Season (quarter) within the year; if not supplied the recap will be for the entire year. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonQualifyResults: async (season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonQualifyResults', 'season_id', season_id) - // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonQualifyResults', 'car_class_id', car_class_id) - // verify required parameter 'race_week_num' is not null or undefined - assertParamExists('getStatsSeasonQualifyResults', 'race_week_num', race_week_num) - const localVarPath = `/data/stats/season_qualify_results`; + getStatsMemberRecap: async (cust_id?: number, year?: GetStatsMemberRecapYearEnum, season?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_recap`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14281,20 +10142,16 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (car_class_id !== undefined) { - localVarQueryParameter['car_class_id'] = car_class_id; + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; } - if (race_week_num !== undefined) { - localVarQueryParameter['race_week_num'] = race_week_num; + if (year !== undefined) { + localVarQueryParameter['year'] = year; } - if (division !== undefined) { - localVarQueryParameter['division'] = division; + if (season !== undefined) { + localVarQueryParameter['season'] = season; } @@ -14310,11 +10167,12 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonQualifyResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_qualify_results`; + getStatsMemberRecentRaces: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_recent_races`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14330,6 +10188,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14343,19 +10205,12 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * - * @param {number} season_id - * @param {number} car_class_id - * @param {IracingDivision} [division] - * @param {number} [race_week_num] The first race week of a season is 0. + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonSupersessionStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonSupersessionStandings', 'season_id', season_id) - // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonSupersessionStandings', 'car_class_id', car_class_id) - const localVarPath = `/data/stats/season_supersession_standings`; + getStatsMemberSummary: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_summary`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14371,20 +10226,8 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) - if (season_id !== undefined) { - localVarQueryParameter['season_id'] = season_id; - } - - if (car_class_id !== undefined) { - localVarQueryParameter['car_class_id'] = car_class_id; - } - - if (division !== undefined) { - localVarQueryParameter['division'] = division; - } - - if (race_week_num !== undefined) { - localVarQueryParameter['race_week_num'] = race_week_num; + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; } @@ -14400,11 +10243,12 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} [cust_id] Defaults to the authenticated member. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonSupersessionStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_supersession_standings`; + getStatsMemberYearly: async (cust_id?: number, options: RawAxiosRequestConfig = {}): Promise => { + const localVarPath = `/data/stats/member_yearly`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14420,6 +10264,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (cust_id !== undefined) { + localVarQueryParameter['cust_id'] = cust_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14433,11 +10281,19 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} season_id + * @param {number} car_class_id + * @param {IracingDivision} [division] + * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} - */ - getStatsSeasonTTResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_results`; + */ + getStatsSeasonDriverStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonDriverStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonDriverStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_driver_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14453,6 +10309,22 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14466,11 +10338,21 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} race_week_num The first race week of a season is 0. + * @param {IracingDivision} [division] * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTTStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_tt_standings`; + getStatsSeasonQualifyResults: async (season_id: number, car_class_id: number, race_week_num: number, division?: IracingDivision, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'car_class_id', car_class_id) + // verify required parameter 'race_week_num' is not null or undefined + assertParamExists('getStatsSeasonQualifyResults', 'race_week_num', race_week_num) + const localVarPath = `/data/stats/season_qualify_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14486,6 +10368,22 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14501,16 +10399,17 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration * * @param {number} season_id * @param {number} car_class_id + * @param {IracingDivision} [division] * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTeamStandings: async (season_id: number, car_class_id: number, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + getStatsSeasonSupersessionStandings: async (season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'season_id' is not null or undefined - assertParamExists('getStatsSeasonTeamStandings', 'season_id', season_id) + assertParamExists('getStatsSeasonSupersessionStandings', 'season_id', season_id) // verify required parameter 'car_class_id' is not null or undefined - assertParamExists('getStatsSeasonTeamStandings', 'car_class_id', car_class_id) - const localVarPath = `/data/stats/season_team_standings`; + assertParamExists('getStatsSeasonSupersessionStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_supersession_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14534,6 +10433,10 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration localVarQueryParameter['car_class_id'] = car_class_id; } + if (division !== undefined) { + localVarQueryParameter['division'] = division; + } + if (race_week_num !== undefined) { localVarQueryParameter['race_week_num'] = race_week_num; } @@ -14551,11 +10454,18 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration }, /** * + * @param {number} season_id + * @param {number} car_class_id + * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getStatsSeasonTeamStandingsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/season_team_standings`; + getStatsSeasonTeamStandings: async (season_id: number, car_class_id: number, race_week_num?: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'season_id' is not null or undefined + assertParamExists('getStatsSeasonTeamStandings', 'season_id', season_id) + // verify required parameter 'car_class_id' is not null or undefined + assertParamExists('getStatsSeasonTeamStandings', 'car_class_id', car_class_id) + const localVarPath = `/data/stats/season_team_standings`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -14571,6 +10481,18 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (season_id !== undefined) { + localVarQueryParameter['season_id'] = season_id; + } + + if (car_class_id !== undefined) { + localVarQueryParameter['car_class_id'] = car_class_id; + } + + if (race_week_num !== undefined) { + localVarQueryParameter['race_week_num'] = race_week_num; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -14746,39 +10668,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsWorldRecordsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/stats/world_records`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -14797,17 +10686,6 @@ export const StatsApiAxiosParamCreator = function (configuration?: Configuration export const StatsApiFp = function(configuration?: Configuration) { const localVarAxiosParamCreator = StatsApiAxiosParamCreator(configuration) return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} [cust_id] Defaults to the authenticated member. @@ -14821,17 +10699,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberBests']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsMemberBestsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberBestsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberBestsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} [cust_id] Defaults to the authenticated member. @@ -14844,17 +10711,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberCareer']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsMemberCareerDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberCareerDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberCareerDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} season_id @@ -14868,17 +10724,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberDivision']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberDivisionDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberDivisionDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} [cust_id] Defaults to the authenticated member. @@ -14893,17 +10738,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecap']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsMemberRecapDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecapDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecapDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} [cust_id] Defaults to the authenticated member. @@ -14916,17 +10750,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecentRaces']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberRecentRacesDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberRecentRacesDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} [cust_id] Defaults to the authenticated member. @@ -14939,17 +10762,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberSummary']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberSummaryDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberSummaryDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} [cust_id] Defaults to the authenticated member. @@ -14962,17 +10774,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberYearly']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsMemberYearlyDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsMemberYearlyDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} season_id @@ -14988,17 +10789,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonDriverStandings']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonDriverStandingsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonDriverStandingsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} season_id @@ -15014,17 +10804,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonQualifyResults']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonQualifyResultsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonQualifyResultsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} season_id @@ -15033,44 +10812,11 @@ export const StatsApiFp = function(configuration?: Configuration) { * @param {number} [race_week_num] The first race week of a season is 0. * @param {*} [options] Override http request option. * @throws {RequiredError} - */ - async getStatsSeasonSupersessionStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandings(season_id, car_class_id, division, race_week_num, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonSupersessionStandings']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandingsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonSupersessionStandingsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTTResultsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTTResultsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTTStandingsDocs(options); + */ + async getStatsSeasonSupersessionStandings(season_id: number, car_class_id: number, division?: IracingDivision, race_week_num?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonSupersessionStandings(season_id, car_class_id, division, race_week_num, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTTStandingsDocs']?.[localVarOperationServerIndex]?.url; + const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonSupersessionStandings']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, /** @@ -15087,17 +10833,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTeamStandings']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsSeasonTeamStandingsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsSeasonTeamStandingsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} season_id @@ -15143,17 +10878,6 @@ export const StatsApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsWorldRecords']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getStatsWorldRecordsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['StatsApi.getStatsWorldRecordsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -15163,14 +10887,6 @@ export const StatsApiFp = function(configuration?: Configuration) { export const StatsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { const localVarFp = StatsApiFp(configuration) return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getStatsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. @@ -15180,14 +10896,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsMemberBests(requestParameters: StatsApiGetStatsMemberBestsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberBestsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberBestsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. @@ -15197,14 +10905,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsMemberCareer(requestParameters: StatsApiGetStatsMemberCareerRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberCareerDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberCareerDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. @@ -15214,14 +10914,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsMemberDivision(requestParameters: StatsApiGetStatsMemberDivisionRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberDivisionDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. @@ -15231,14 +10923,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsMemberRecap(requestParameters: StatsApiGetStatsMemberRecapRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberRecapDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberRecapDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. @@ -15248,14 +10932,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsMemberRecentRaces(requestParameters: StatsApiGetStatsMemberRecentRacesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberRecentRacesDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. @@ -15265,14 +10941,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsMemberSummary(requestParameters: StatsApiGetStatsMemberSummaryRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberSummaryDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. @@ -15282,14 +10950,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsMemberYearly(requestParameters: StatsApiGetStatsMemberYearlyRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsMemberYearlyDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. @@ -15299,14 +10959,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsSeasonDriverStandings(requestParameters: StatsApiGetStatsSeasonDriverStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonDriverStandingsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. @@ -15316,14 +10968,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsSeasonQualifyResults(requestParameters: StatsApiGetStatsSeasonQualifyResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonQualifyResultsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. @@ -15333,30 +10977,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsSeasonSupersessionStandings(requestParameters: StatsApiGetStatsSeasonSupersessionStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonSupersessionStandingsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonTTResultsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonTTStandingsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. @@ -15366,14 +10986,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsSeasonTeamStandings(requestParameters: StatsApiGetStatsSeasonTeamStandingsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsSeasonTeamStandingsDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {StatsApiGetStatsSeasonTimeTrialResultsRequest} requestParameters Request parameters. @@ -15401,14 +11013,6 @@ export const StatsApiFactory = function (configuration?: Configuration, basePath getStatsWorldRecords(requestParameters: StatsApiGetStatsWorldRecordsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getStatsWorldRecords(requestParameters.car_id, requestParameters.track_id, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getStatsWorldRecordsDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -15616,15 +11220,6 @@ export interface StatsApiGetStatsWorldRecordsRequest { * StatsApi - object-oriented interface */ export class StatsApi extends BaseAPI { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsMemberBestsRequest} requestParameters Request parameters. @@ -15635,15 +11230,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsMemberBests(requestParameters.cust_id, requestParameters.car_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsMemberBestsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberBestsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsMemberCareerRequest} requestParameters Request parameters. @@ -15654,15 +11240,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsMemberCareer(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsMemberCareerDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberCareerDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsMemberDivisionRequest} requestParameters Request parameters. @@ -15673,15 +11250,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsMemberDivision(requestParameters.season_id, requestParameters.event_type, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsMemberDivisionDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberDivisionDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsMemberRecapRequest} requestParameters Request parameters. @@ -15692,15 +11260,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsMemberRecap(requestParameters.cust_id, requestParameters.year, requestParameters.season, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsMemberRecapDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberRecapDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsMemberRecentRacesRequest} requestParameters Request parameters. @@ -15711,15 +11270,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsMemberRecentRaces(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsMemberRecentRacesDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberRecentRacesDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsMemberSummaryRequest} requestParameters Request parameters. @@ -15730,15 +11280,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsMemberSummary(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsMemberSummaryDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberSummaryDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsMemberYearlyRequest} requestParameters Request parameters. @@ -15749,15 +11290,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsMemberYearly(requestParameters.cust_id, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsMemberYearlyDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsMemberYearlyDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsSeasonDriverStandingsRequest} requestParameters Request parameters. @@ -15768,15 +11300,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsSeasonDriverStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsSeasonDriverStandingsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonDriverStandingsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsSeasonQualifyResultsRequest} requestParameters Request parameters. @@ -15787,15 +11310,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsSeasonQualifyResults(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, requestParameters.division, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsSeasonQualifyResultsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonQualifyResultsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsSeasonSupersessionStandingsRequest} requestParameters Request parameters. @@ -15806,33 +11320,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsSeasonSupersessionStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.division, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsSeasonSupersessionStandingsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonSupersessionStandingsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsSeasonTTResultsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonTTResultsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsSeasonTTStandingsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonTTStandingsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsSeasonTeamStandingsRequest} requestParameters Request parameters. @@ -15843,15 +11330,6 @@ export class StatsApi extends BaseAPI { return StatsApiFp(this.configuration).getStatsSeasonTeamStandings(requestParameters.season_id, requestParameters.car_class_id, requestParameters.race_week_num, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsSeasonTeamStandingsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsSeasonTeamStandingsDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {StatsApiGetStatsSeasonTimeTrialResultsRequest} requestParameters Request parameters. @@ -15881,15 +11359,6 @@ export class StatsApi extends BaseAPI { public getStatsWorldRecords(requestParameters: StatsApiGetStatsWorldRecordsRequest, options?: RawAxiosRequestConfig) { return StatsApiFp(this.configuration).getStatsWorldRecords(requestParameters.car_id, requestParameters.track_id, requestParameters.season_year, requestParameters.season_quarter, options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getStatsWorldRecordsDocs(options?: RawAxiosRequestConfig) { - return StatsApiFp(this.configuration).getStatsWorldRecordsDocs(options).then((request) => request(this.axios, this.basePath)); - } } export const GetStatsMemberDivisionEventTypeEnum = { @@ -15947,72 +11416,6 @@ export const TeamApiAxiosParamCreator = function (configuration?: Configuration) - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTeamDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTeamGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -16046,39 +11449,6 @@ export const TeamApiAxiosParamCreator = function (configuration?: Configuration) - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTeamMembershipDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/team/membership`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -16110,28 +11480,6 @@ export const TeamApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeam']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTeamDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTeamGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {*} [options] Override http request option. @@ -16143,17 +11491,6 @@ export const TeamApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamMembership']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTeamMembershipDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTeamMembershipDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TeamApi.getTeamMembershipDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -16172,22 +11509,6 @@ export const TeamApiFactory = function (configuration?: Configuration, basePath? getTeam(requestParameters: TeamApiGetTeamRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getTeam(requestParameters.team_id, requestParameters.include_licenses, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTeamDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getTeamDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTeamGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTeamGetDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {*} [options] Override http request option. @@ -16196,14 +11517,6 @@ export const TeamApiFactory = function (configuration?: Configuration, basePath? getTeamMembership(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getTeamMembership(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTeamMembershipDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTeamMembershipDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -16233,24 +11546,6 @@ export class TeamApi extends BaseAPI { return TeamApiFp(this.configuration).getTeam(requestParameters.team_id, requestParameters.include_licenses, options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTeamDocs(options?: RawAxiosRequestConfig) { - return TeamApiFp(this.configuration).getTeamDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTeamGetDocs(options?: RawAxiosRequestConfig) { - return TeamApiFp(this.configuration).getTeamGetDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {*} [options] Override http request option. @@ -16258,105 +11553,26 @@ export class TeamApi extends BaseAPI { */ public getTeamMembership(options?: RawAxiosRequestConfig) { return TeamApiFp(this.configuration).getTeamMembership(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTeamMembershipDocs(options?: RawAxiosRequestConfig) { - return TeamApiFp(this.configuration).getTeamMembershipDocs(options).then((request) => request(this.axios, this.basePath)); - } -} - - - -/** - * TimeAttackApi - axios parameter creator - */ -export const TimeAttackApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTimeAttackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/time_attack`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {number} ta_comp_season_id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTimeAttackMemberSeasonResults: async (ta_comp_season_id: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'ta_comp_season_id' is not null or undefined - assertParamExists('getTimeAttackMemberSeasonResults', 'ta_comp_season_id', ta_comp_season_id) - const localVarPath = `/data/time_attack/member_season_results`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (ta_comp_season_id !== undefined) { - localVarQueryParameter['ta_comp_season_id'] = ta_comp_season_id; - } + } +} - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, +/** + * TimeAttackApi - axios parameter creator + */ +export const TimeAttackApiAxiosParamCreator = function (configuration?: Configuration) { + return { /** * + * @param {number} ta_comp_season_id * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getTimeAttackMemberSeasonResultsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/time_attack/member_season_results`; + getTimeAttackMemberSeasonResults: async (ta_comp_season_id: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'ta_comp_season_id' is not null or undefined + assertParamExists('getTimeAttackMemberSeasonResults', 'ta_comp_season_id', ta_comp_season_id) + const localVarPath = `/data/time_attack/member_season_results`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); let baseOptions; @@ -16372,6 +11588,10 @@ export const TimeAttackApiAxiosParamCreator = function (configuration?: Configur // http bearer authentication required await setBearerAuthToObject(localVarHeaderParameter, configuration) + if (ta_comp_season_id !== undefined) { + localVarQueryParameter['ta_comp_season_id'] = ta_comp_season_id; + } + setSearchParams(localVarUrlObj, localVarQueryParameter); @@ -16392,17 +11612,6 @@ export const TimeAttackApiAxiosParamCreator = function (configuration?: Configur export const TimeAttackApiFp = function(configuration?: Configuration) { const localVarAxiosParamCreator = TimeAttackApiAxiosParamCreator(configuration) return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTimeAttackDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * * @param {number} ta_comp_season_id @@ -16415,17 +11624,6 @@ export const TimeAttackApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackMemberSeasonResults']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeAttackMemberSeasonResultsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TimeAttackApi.getTimeAttackMemberSeasonResultsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -16435,14 +11633,6 @@ export const TimeAttackApiFp = function(configuration?: Configuration) { export const TimeAttackApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { const localVarFp = TimeAttackApiFp(configuration) return { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTimeAttackDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getTimeAttackDocs(options).then((request) => request(axios, basePath)); - }, /** * * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. @@ -16452,14 +11642,6 @@ export const TimeAttackApiFactory = function (configuration?: Configuration, bas getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTimeAttackMemberSeasonResultsDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -16474,15 +11656,6 @@ export interface TimeAttackApiGetTimeAttackMemberSeasonResultsRequest { * TimeAttackApi - object-oriented interface */ export class TimeAttackApi extends BaseAPI { - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTimeAttackDocs(options?: RawAxiosRequestConfig) { - return TimeAttackApiFp(this.configuration).getTimeAttackDocs(options).then((request) => request(this.axios, this.basePath)); - } - /** * * @param {TimeAttackApiGetTimeAttackMemberSeasonResultsRequest} requestParameters Request parameters. @@ -16492,15 +11665,6 @@ export class TimeAttackApi extends BaseAPI { public getTimeAttackMemberSeasonResults(requestParameters: TimeAttackApiGetTimeAttackMemberSeasonResultsRequest, options?: RawAxiosRequestConfig) { return TimeAttackApiFp(this.configuration).getTimeAttackMemberSeasonResults(requestParameters.ta_comp_season_id, options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTimeAttackMemberSeasonResultsDocs(options?: RawAxiosRequestConfig) { - return TimeAttackApiFp(this.configuration).getTimeAttackMemberSeasonResultsDocs(options).then((request) => request(this.axios, this.basePath)); - } } @@ -16567,105 +11731,6 @@ export const TrackApiAxiosParamCreator = function (configuration?: Configuration - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTrackAssetsDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/assets`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTrackDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTrackGetDocs: async (options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/data/doc/track/get`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication bearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - - setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; @@ -16706,39 +11771,6 @@ export const TrackApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackAssets']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTrackAssetsDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackAssetsDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackAssetsDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTrackDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }>> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getTrackGetDocs(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getTrackGetDocs(options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['TrackApi.getTrackGetDocs']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, } }; @@ -16764,30 +11796,6 @@ export const TrackApiFactory = function (configuration?: Configuration, basePath getTrackAssets(options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.getTrackAssets(options).then((request) => request(axios, basePath)); }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTrackAssetsDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTrackAssetsDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTrackDocs(options?: RawAxiosRequestConfig): AxiosPromise<{ [key: string]: IracingServiceMethodDocs; }> { - return localVarFp.getTrackDocs(options).then((request) => request(axios, basePath)); - }, - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getTrackGetDocs(options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.getTrackGetDocs(options).then((request) => request(axios, basePath)); - }, }; }; @@ -16812,33 +11820,6 @@ export class TrackApi extends BaseAPI { public getTrackAssets(options?: RawAxiosRequestConfig) { return TrackApiFp(this.configuration).getTrackAssets(options).then((request) => request(this.axios, this.basePath)); } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTrackAssetsDocs(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).getTrackAssetsDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTrackDocs(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).getTrackDocs(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public getTrackGetDocs(options?: RawAxiosRequestConfig) { - return TrackApiFp(this.configuration).getTrackGetDocs(options).then((request) => request(this.axios, this.basePath)); - } } diff --git a/packages/api-client/src/client/base.ts b/packages/api/client/axios/base.ts similarity index 100% rename from packages/api-client/src/client/base.ts rename to packages/api/client/axios/base.ts diff --git a/packages/api-client/src/client/common.ts b/packages/api/client/axios/common.ts similarity index 100% rename from packages/api-client/src/client/common.ts rename to packages/api/client/axios/common.ts diff --git a/packages/api-client/src/client/configuration.ts b/packages/api/client/axios/configuration.ts similarity index 100% rename from packages/api-client/src/client/configuration.ts rename to packages/api/client/axios/configuration.ts diff --git a/packages/api-client/src/client/docs/AuthApi.md b/packages/api/client/axios/docs/AuthApi.md similarity index 96% rename from packages/api-client/src/client/docs/AuthApi.md rename to packages/api/client/axios/docs/AuthApi.md index ee2df33..8c824a3 100644 --- a/packages/api-client/src/client/docs/AuthApi.md +++ b/packages/api/client/axios/docs/AuthApi.md @@ -17,7 +17,7 @@ import { AuthApi, Configuration, PostAuthRequest -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new AuthApi(configuration); diff --git a/packages/api/client/axios/docs/CarApi.md b/packages/api/client/axios/docs/CarApi.md new file mode 100644 index 0000000..eba001a --- /dev/null +++ b/packages/api/client/axios/docs/CarApi.md @@ -0,0 +1,102 @@ +# CarApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getCar**](#getcar) | **GET** /data/car/get | | +|[**getCarAssets**](#getcarassets) | **GET** /data/car/assets | | + +# **getCar** +> IracingAPIResponse getCar() + + +### Example + +```typescript +import { + CarApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new CarApi(configuration); + +const { status, data } = await apiInstance.getCar(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getCarAssets** +> IracingAPIResponse getCarAssets() + +image paths are relative to https://images-static.iracing.com/ + +### Example + +```typescript +import { + CarApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new CarApi(configuration); + +const { status, data } = await apiInstance.getCarAssets(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api/client/axios/docs/CarclassApi.md b/packages/api/client/axios/docs/CarclassApi.md new file mode 100644 index 0000000..23bc3bd --- /dev/null +++ b/packages/api/client/axios/docs/CarclassApi.md @@ -0,0 +1,54 @@ +# CarclassApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getCarClass**](#getcarclass) | **GET** /data/carclass/get | Gets car classes.| + +# **getCarClass** +> IracingAPIResponse getCarClass() + + +### Example + +```typescript +import { + CarclassApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new CarclassApi(configuration); + +const { status, data } = await apiInstance.getCarClass(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/CarclassApi.md b/packages/api/client/axios/docs/ConstantsApi.md similarity index 58% rename from packages/api-client/src/client/docs/CarclassApi.md rename to packages/api/client/axios/docs/ConstantsApi.md index 1e98ce8..ddd863d 100644 --- a/packages/api-client/src/client/docs/CarclassApi.md +++ b/packages/api/client/axios/docs/ConstantsApi.md @@ -1,29 +1,30 @@ -# CarclassApi +# ConstantsApi All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**getCarClass**](#getcarclass) | **GET** /data/carclass/get | Gets car classes.| -|[**getCarClassDocs**](#getcarclassdocs) | **GET** /data/doc/carclass | | -|[**getCarClassGetDocs**](#getcarclassgetdocs) | **GET** /data/doc/carclass/get | | +|[**getConstantsCategories**](#getconstantscategories) | **GET** /data/constants/categories | | +|[**getConstantsDivisions**](#getconstantsdivisions) | **GET** /data/constants/divisions | | +|[**getConstantsEventTypes**](#getconstantseventtypes) | **GET** /data/constants/event_types | | -# **getCarClass** -> IracingAPIResponse getCarClass() +# **getConstantsCategories** +> IracingAPIResponse getConstantsCategories() +Constant; returned directly as an array of objects ### Example ```typescript import { - CarclassApi, + ConstantsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new CarclassApi(configuration); +const apiInstance = new ConstantsApi(configuration); -const { status, data } = await apiInstance.getCarClass(); +const { status, data } = await apiInstance.getConstantsCategories(); ``` ### Parameters @@ -54,22 +55,23 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getCarClassDocs** -> { [key: string]: IracingServiceMethodDocs; } getCarClassDocs() +# **getConstantsDivisions** +> IracingAPIResponse getConstantsDivisions() +Constant; returned directly as an array of objects ### Example ```typescript import { - CarclassApi, + ConstantsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new CarclassApi(configuration); +const apiInstance = new ConstantsApi(configuration); -const { status, data } = await apiInstance.getCarClassDocs(); +const { status, data } = await apiInstance.getConstantsDivisions(); ``` ### Parameters @@ -78,7 +80,7 @@ This endpoint does not have any parameters. ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingAPIResponse** ### Authorization @@ -93,27 +95,30 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getCarClassGetDocs** -> IracingServiceMethodDocs getCarClassGetDocs() +# **getConstantsEventTypes** +> IracingAPIResponse getConstantsEventTypes() +Constant; returned directly as an array of objects ### Example ```typescript import { - CarclassApi, + ConstantsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new CarclassApi(configuration); +const apiInstance = new ConstantsApi(configuration); -const { status, data } = await apiInstance.getCarClassGetDocs(); +const { status, data } = await apiInstance.getConstantsEventTypes(); ``` ### Parameters @@ -122,7 +127,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -137,8 +142,10 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/DocApi.md b/packages/api/client/axios/docs/DocApi.md similarity index 96% rename from packages/api-client/src/client/docs/DocApi.md rename to packages/api/client/axios/docs/DocApi.md index 30c5c32..5407091 100644 --- a/packages/api-client/src/client/docs/DocApi.md +++ b/packages/api/client/axios/docs/DocApi.md @@ -98,7 +98,7 @@ All URIs are relative to *https://members-ng.iracing.com* import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -142,7 +142,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -186,7 +186,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -230,7 +230,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -274,7 +274,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -318,7 +318,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -362,7 +362,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -406,7 +406,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -450,7 +450,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -494,7 +494,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -538,7 +538,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -589,7 +589,7 @@ const { status, data } = await apiInstance.getDriverStatsByCategoryCategoryDocs( import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -633,7 +633,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -677,7 +677,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -721,7 +721,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -765,7 +765,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -809,7 +809,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -853,7 +853,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -897,7 +897,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -941,7 +941,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -985,7 +985,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1029,7 +1029,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1073,7 +1073,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1117,7 +1117,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1161,7 +1161,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1205,7 +1205,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1249,7 +1249,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1293,7 +1293,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1337,7 +1337,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1381,7 +1381,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1425,7 +1425,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1469,7 +1469,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1513,7 +1513,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1557,7 +1557,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1601,7 +1601,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1645,7 +1645,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1689,7 +1689,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1733,7 +1733,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1777,7 +1777,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1821,7 +1821,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1865,7 +1865,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1909,7 +1909,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1953,7 +1953,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -1997,7 +1997,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2041,7 +2041,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2085,7 +2085,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2129,7 +2129,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2173,7 +2173,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2217,7 +2217,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2261,7 +2261,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2305,7 +2305,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2349,7 +2349,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2393,7 +2393,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2437,7 +2437,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2481,7 +2481,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2525,7 +2525,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2569,7 +2569,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2613,7 +2613,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2657,7 +2657,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2701,7 +2701,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2745,7 +2745,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2789,7 +2789,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2833,7 +2833,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2877,7 +2877,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2921,7 +2921,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -2965,7 +2965,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3009,7 +3009,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3053,7 +3053,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3097,7 +3097,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3141,7 +3141,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3185,7 +3185,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3229,7 +3229,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3273,7 +3273,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3317,7 +3317,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3361,7 +3361,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3405,7 +3405,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3449,7 +3449,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3493,7 +3493,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3537,7 +3537,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3581,7 +3581,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3625,7 +3625,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3669,7 +3669,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); @@ -3713,7 +3713,7 @@ This endpoint does not have any parameters. import { DocApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new DocApi(configuration); diff --git a/packages/api/client/axios/docs/DriverStatsApi.md b/packages/api/client/axios/docs/DriverStatsApi.md new file mode 100644 index 0000000..8520681 --- /dev/null +++ b/packages/api/client/axios/docs/DriverStatsApi.md @@ -0,0 +1,61 @@ +# DriverStatsApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getDriverStatsByCategory**](#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | | + +# **getDriverStatsByCategory** +> IracingAPIResponse getDriverStatsByCategory() + + +### Example + +```typescript +import { + DriverStatsApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new DriverStatsApi(configuration); + +let category: IracingCategory; //Racing category. (default to undefined) + +const { status, data } = await apiInstance.getDriverStatsByCategory( + category +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **category** | **IracingCategory** | Racing category. | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/ErrorResponse.md b/packages/api/client/axios/docs/ErrorResponse.md similarity index 89% rename from packages/api-client/src/client/docs/ErrorResponse.md rename to packages/api/client/axios/docs/ErrorResponse.md index bb6c3e1..eabd7c1 100644 --- a/packages/api-client/src/client/docs/ErrorResponse.md +++ b/packages/api/client/axios/docs/ErrorResponse.md @@ -12,7 +12,7 @@ Name | Type | Description | Notes ## Example ```typescript -import { ErrorResponse } from '@iracing-data/api-client'; +import { ErrorResponse } from '@iracing-data/api-client-axios'; const instance: ErrorResponse = { error, diff --git a/packages/api/client/axios/docs/HostedApi.md b/packages/api/client/axios/docs/HostedApi.md new file mode 100644 index 0000000..02ff154 --- /dev/null +++ b/packages/api/client/axios/docs/HostedApi.md @@ -0,0 +1,110 @@ +# HostedApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getHostedCombinedSessions**](#gethostedcombinedsessions) | **GET** /data/hosted/combined_sessions | | +|[**getHostedSessions**](#gethostedsessions) | **GET** /data/hosted/sessions | | + +# **getHostedCombinedSessions** +> IracingAPIResponse getHostedCombinedSessions() + +Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + +### Example + +```typescript +import { + HostedApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new HostedApi(configuration); + +let package_id: number; //If set, return only sessions using this car or track package ID. (optional) (default to undefined) + +const { status, data } = await apiInstance.getHostedCombinedSessions( + package_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **package_id** | [**number**] | If set, return only sessions using this car or track package ID. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getHostedSessions** +> IracingAPIResponse getHostedSessions() + +Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + +### Example + +```typescript +import { + HostedApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new HostedApi(configuration); + +const { status, data } = await apiInstance.getHostedSessions(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/docs/IracingAPIResponse.md b/packages/api/client/axios/docs/IracingAPIResponse.md similarity index 88% rename from packages/api-client/src/client/docs/IracingAPIResponse.md rename to packages/api/client/axios/docs/IracingAPIResponse.md index 344881c..29c6c24 100644 --- a/packages/api-client/src/client/docs/IracingAPIResponse.md +++ b/packages/api/client/axios/docs/IracingAPIResponse.md @@ -12,7 +12,7 @@ Name | Type | Description | Notes ## Example ```typescript -import { IracingAPIResponse } from '@iracing-data/api-client'; +import { IracingAPIResponse } from '@iracing-data/api-client-axios'; const instance: IracingAPIResponse = { link, diff --git a/packages/api-client/src/client/docs/IracingCategory.md b/packages/api/client/axios/docs/IracingCategory.md similarity index 100% rename from packages/api-client/src/client/docs/IracingCategory.md rename to packages/api/client/axios/docs/IracingCategory.md diff --git a/packages/api-client/src/client/docs/IracingDivision.md b/packages/api/client/axios/docs/IracingDivision.md similarity index 100% rename from packages/api-client/src/client/docs/IracingDivision.md rename to packages/api/client/axios/docs/IracingDivision.md diff --git a/packages/api-client/src/client/docs/IracingEventType.md b/packages/api/client/axios/docs/IracingEventType.md similarity index 100% rename from packages/api-client/src/client/docs/IracingEventType.md rename to packages/api/client/axios/docs/IracingEventType.md diff --git a/packages/api-client/src/client/docs/IracingServiceMethodDocs.md b/packages/api/client/axios/docs/IracingServiceMethodDocs.md similarity index 98% rename from packages/api-client/src/client/docs/IracingServiceMethodDocs.md rename to packages/api/client/axios/docs/IracingServiceMethodDocs.md index 72f022d..c2479a7 100644 --- a/packages/api-client/src/client/docs/IracingServiceMethodDocs.md +++ b/packages/api/client/axios/docs/IracingServiceMethodDocs.md @@ -13,7 +13,7 @@ Name | Type | Description | Notes ## Example ```typescript -import { IracingServiceMethodDocs } from '@iracing-data/api-client'; +import { IracingServiceMethodDocs } from '@iracing-data/api-client-axios'; const instance: IracingServiceMethodDocs = { link, diff --git a/packages/api-client/src/client/docs/IracingServiceMethodParametersDocs.md b/packages/api/client/axios/docs/IracingServiceMethodParametersDocs.md similarity index 97% rename from packages/api-client/src/client/docs/IracingServiceMethodParametersDocs.md rename to packages/api/client/axios/docs/IracingServiceMethodParametersDocs.md index cf6ae0d..2e921d5 100644 --- a/packages/api-client/src/client/docs/IracingServiceMethodParametersDocs.md +++ b/packages/api/client/axios/docs/IracingServiceMethodParametersDocs.md @@ -13,7 +13,7 @@ Name | Type | Description | Notes ## Example ```typescript -import { IracingServiceMethodParametersDocs } from '@iracing-data/api-client'; +import { IracingServiceMethodParametersDocs } from '@iracing-data/api-client-axios'; const instance: IracingServiceMethodParametersDocs = { type, diff --git a/packages/api-client/src/client/docs/LeagueApi.md b/packages/api/client/axios/docs/LeagueApi.md similarity index 63% rename from packages/api-client/src/client/docs/LeagueApi.md rename to packages/api/client/axios/docs/LeagueApi.md index 4748ab4..c1874f8 100644 --- a/packages/api-client/src/client/docs/LeagueApi.md +++ b/packages/api/client/axios/docs/LeagueApi.md @@ -6,23 +6,13 @@ All URIs are relative to *https://members-ng.iracing.com* |------------- | ------------- | -------------| |[**getLeague**](#getleague) | **GET** /data/league/get | | |[**getLeagueCustomerLeagueSessions**](#getleaguecustomerleaguesessions) | **GET** /data/league/cust_league_sessions | | -|[**getLeagueCustomerLeagueSessionsDocs**](#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | | |[**getLeagueDirectory**](#getleaguedirectory) | **GET** /data/league/directory | | -|[**getLeagueDirectoryDocs**](#getleaguedirectorydocs) | **GET** /data/doc/league/directory | | -|[**getLeagueDocs**](#getleaguedocs) | **GET** /data/doc/league | | -|[**getLeagueGetDocs**](#getleaguegetdocs) | **GET** /data/doc/league/get | | -|[**getLeagueGetPointsSystemsDocs**](#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | | |[**getLeagueMembership**](#getleaguemembership) | **GET** /data/league/membership | | -|[**getLeagueMembershipDocs**](#getleaguemembershipdocs) | **GET** /data/doc/league/membership | | |[**getLeaguePointsSystems**](#getleaguepointssystems) | **GET** /data/league/get_points_systems | | |[**getLeagueRoster**](#getleagueroster) | **GET** /data/league/roster | | -|[**getLeagueRosterDocs**](#getleaguerosterdocs) | **GET** /data/doc/league/roster | | |[**getLeagueSeasonSessions**](#getleagueseasonsessions) | **GET** /data/league/season_sessions | | -|[**getLeagueSeasonSessionsDocs**](#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | | |[**getLeagueSeasonStandings**](#getleagueseasonstandings) | **GET** /data/league/season_standings | | -|[**getLeagueSeasonStandingsDocs**](#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | | |[**getLeagueSeasons**](#getleagueseasons) | **GET** /data/league/seasons | | -|[**getLeagueSeasonsDocs**](#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | | # **getLeague** > IracingAPIResponse getLeague() @@ -34,7 +24,7 @@ All URIs are relative to *https://members-ng.iracing.com* import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -90,7 +80,7 @@ const { status, data } = await apiInstance.getLeague( import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -136,50 +126,6 @@ const { status, data } = await apiInstance.getLeagueCustomerLeagueSessions( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueCustomerLeagueSessionsDocs** -> IracingServiceMethodDocs getLeagueCustomerLeagueSessionsDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueCustomerLeagueSessionsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getLeagueDirectory** > IracingAPIResponse getLeagueDirectory() @@ -190,7 +136,7 @@ This endpoint does not have any parameters. import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -266,182 +212,6 @@ const { status, data } = await apiInstance.getLeagueDirectory( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueDirectoryDocs** -> IracingServiceMethodDocs getLeagueDirectoryDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueDirectoryDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLeagueDocs** -> { [key: string]: IracingServiceMethodDocs; } getLeagueDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLeagueGetDocs** -> IracingServiceMethodDocs getLeagueGetDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getLeagueGetPointsSystemsDocs** -> IracingServiceMethodDocs getLeagueGetPointsSystemsDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueGetPointsSystemsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getLeagueMembership** > IracingAPIResponse getLeagueMembership() @@ -452,7 +222,7 @@ This endpoint does not have any parameters. import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -498,50 +268,6 @@ const { status, data } = await apiInstance.getLeagueMembership( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueMembershipDocs** -> IracingServiceMethodDocs getLeagueMembershipDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueMembershipDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getLeaguePointsSystems** > IracingAPIResponse getLeaguePointsSystems() @@ -552,7 +278,7 @@ This endpoint does not have any parameters. import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -608,7 +334,7 @@ const { status, data } = await apiInstance.getLeaguePointsSystems( import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -654,50 +380,6 @@ const { status, data } = await apiInstance.getLeagueRoster( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueRosterDocs** -> IracingServiceMethodDocs getLeagueRosterDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueRosterDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getLeagueSeasonSessions** > IracingAPIResponse getLeagueSeasonSessions() @@ -708,7 +390,7 @@ This endpoint does not have any parameters. import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -757,50 +439,6 @@ const { status, data } = await apiInstance.getLeagueSeasonSessions( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueSeasonSessionsDocs** -> IracingServiceMethodDocs getLeagueSeasonSessionsDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueSeasonSessionsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getLeagueSeasonStandings** > IracingAPIResponse getLeagueSeasonStandings() @@ -811,7 +449,7 @@ This endpoint does not have any parameters. import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -863,50 +501,6 @@ const { status, data } = await apiInstance.getLeagueSeasonStandings( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueSeasonStandingsDocs** -> IracingServiceMethodDocs getLeagueSeasonStandingsDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueSeasonStandingsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getLeagueSeasons** > IracingAPIResponse getLeagueSeasons() @@ -917,7 +511,7 @@ This endpoint does not have any parameters. import { LeagueApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new LeagueApi(configuration); @@ -963,47 +557,3 @@ const { status, data } = await apiInstance.getLeagueSeasons( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getLeagueSeasonsDocs** -> IracingServiceMethodDocs getLeagueSeasonsDocs() - - -### Example - -```typescript -import { - LeagueApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new LeagueApi(configuration); - -const { status, data } = await apiInstance.getLeagueSeasonsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/HostedApi.md b/packages/api/client/axios/docs/LookupApi.md similarity index 59% rename from packages/api-client/src/client/docs/HostedApi.md rename to packages/api/client/axios/docs/LookupApi.md index 93ae4a2..446907d 100644 --- a/packages/api-client/src/client/docs/HostedApi.md +++ b/packages/api/client/axios/docs/LookupApi.md @@ -1,43 +1,35 @@ -# HostedApi +# LookupApi All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**getHostedCombinedSessions**](#gethostedcombinedsessions) | **GET** /data/hosted/combined_sessions | | -|[**getHostedCombinedSessionsDocs**](#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | | -|[**getHostedDocs**](#gethosteddocs) | **GET** /data/doc/hosted | | -|[**getHostedSessions**](#gethostedsessions) | **GET** /data/hosted/sessions | | -|[**getHostedSessionsDocs**](#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | | +|[**getLookup**](#getlookup) | **GET** /data/lookup/get | | +|[**getLookupCountries**](#getlookupcountries) | **GET** /data/lookup/countries | | +|[**getLookupDrivers**](#getlookupdrivers) | **GET** /data/lookup/drivers | | +|[**getLookupFlairs**](#getlookupflairs) | **GET** /data/lookup/flairs | | +|[**getLookupLicenses**](#getlookuplicenses) | **GET** /data/lookup/licenses | | -# **getHostedCombinedSessions** -> IracingAPIResponse getHostedCombinedSessions() +# **getLookup** +> IracingAPIResponse getLookup() -Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. ### Example ```typescript import { - HostedApi, + LookupApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new HostedApi(configuration); +const apiInstance = new LookupApi(configuration); -let package_id: number; //If set, return only sessions using this car or track package ID. (optional) (default to undefined) - -const { status, data } = await apiInstance.getHostedCombinedSessions( - package_id -); +const { status, data } = await apiInstance.getLookup(); ``` ### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **package_id** | [**number**] | If set, return only sessions using this car or track package ID. | (optional) defaults to undefined| +This endpoint does not have any parameters. ### Return type @@ -64,22 +56,22 @@ const { status, data } = await apiInstance.getHostedCombinedSessions( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getHostedCombinedSessionsDocs** -> IracingServiceMethodDocs getHostedCombinedSessionsDocs() +# **getLookupCountries** +> IracingAPIResponse getLookupCountries() ### Example ```typescript import { - HostedApi, + LookupApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new HostedApi(configuration); +const apiInstance = new LookupApi(configuration); -const { status, data } = await apiInstance.getHostedCombinedSessionsDocs(); +const { status, data } = await apiInstance.getLookupCountries(); ``` ### Parameters @@ -88,7 +80,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -103,36 +95,48 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getHostedDocs** -> { [key: string]: IracingServiceMethodDocs; } getHostedDocs() +# **getLookupDrivers** +> IracingAPIResponse getLookupDrivers() ### Example ```typescript import { - HostedApi, + LookupApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new HostedApi(configuration); +const apiInstance = new LookupApi(configuration); + +let search_term: string; //A cust_id or partial name for which to search. (default to undefined) +let league_id: number; //Narrow the search to the roster of the given league. (optional) (default to undefined) -const { status, data } = await apiInstance.getHostedDocs(); +const { status, data } = await apiInstance.getLookupDrivers( + search_term, + league_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **search_term** | [**string**] | A cust_id or partial name for which to search. | defaults to undefined| +| **league_id** | [**number**] | Narrow the search to the roster of the given league. | (optional) defaults to undefined| ### Return type -**{ [key: string]: IracingServiceMethodDocs; }** +**IracingAPIResponse** ### Authorization @@ -147,28 +151,29 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getHostedSessions** -> IracingAPIResponse getHostedSessions() +# **getLookupFlairs** +> IracingAPIResponse getLookupFlairs() -Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. ### Example ```typescript import { - HostedApi, + LookupApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new HostedApi(configuration); +const apiInstance = new LookupApi(configuration); -const { status, data } = await apiInstance.getHostedSessions(); +const { status, data } = await apiInstance.getLookupFlairs(); ``` ### Parameters @@ -199,22 +204,22 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getHostedSessionsDocs** -> IracingServiceMethodDocs getHostedSessionsDocs() +# **getLookupLicenses** +> IracingAPIResponse getLookupLicenses() ### Example ```typescript import { - HostedApi, + LookupApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); -const apiInstance = new HostedApi(configuration); +const apiInstance = new LookupApi(configuration); -const { status, data } = await apiInstance.getHostedSessionsDocs(); +const { status, data } = await apiInstance.getLookupLicenses(); ``` ### Parameters @@ -223,7 +228,7 @@ This endpoint does not have any parameters. ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -238,8 +243,10 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/packages/api-client/src/client/docs/MemberApi.md b/packages/api/client/axios/docs/MemberApi.md similarity index 55% rename from packages/api-client/src/client/docs/MemberApi.md rename to packages/api/client/axios/docs/MemberApi.md index 9990782..4907a4f 100644 --- a/packages/api-client/src/client/docs/MemberApi.md +++ b/packages/api/client/axios/docs/MemberApi.md @@ -6,19 +6,11 @@ All URIs are relative to *https://members-ng.iracing.com* |------------- | ------------- | -------------| |[**getMember**](#getmember) | **GET** /data/member/get | | |[**getMemberAwardInstances**](#getmemberawardinstances) | **GET** /data/member/award_instances | | -|[**getMemberAwardInstancesDocs**](#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | | |[**getMemberAwards**](#getmemberawards) | **GET** /data/member/awards | | -|[**getMemberAwardsDocs**](#getmemberawardsdocs) | **GET** /data/doc/member/awards | | |[**getMemberChartData**](#getmemberchartdata) | **GET** /data/member/chart_data | | -|[**getMemberChartDataDocs**](#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | | -|[**getMemberDocs**](#getmemberdocs) | **GET** /data/doc/member | | -|[**getMemberGetDocs**](#getmembergetdocs) | **GET** /data/doc/member/get | | |[**getMemberInfo**](#getmemberinfo) | **GET** /data/member/info | | -|[**getMemberInfoDocs**](#getmemberinfodocs) | **GET** /data/doc/member/info | | |[**getMemberParticipationCredits**](#getmemberparticipationcredits) | **GET** /data/member/participation_credits | | -|[**getMemberParticipationCreditsDocs**](#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | | |[**getMemberProfile**](#getmemberprofile) | **GET** /data/member/profile | Gets a requested user\'s profile.| -|[**getMemberProfileDocs**](#getmemberprofiledocs) | **GET** /data/doc/member/profile | | # **getMember** > IracingAPIResponse getMember() @@ -30,7 +22,7 @@ All URIs are relative to *https://members-ng.iracing.com* import { MemberApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); @@ -86,7 +78,7 @@ const { status, data } = await apiInstance.getMember( import { MemberApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); @@ -132,50 +124,6 @@ const { status, data } = await apiInstance.getMemberAwardInstances( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberAwardInstancesDocs** -> IracingServiceMethodDocs getMemberAwardInstancesDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberAwardInstancesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getMemberAwards** > IracingAPIResponse getMemberAwards() @@ -186,7 +134,7 @@ This endpoint does not have any parameters. import { MemberApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); @@ -229,50 +177,6 @@ const { status, data } = await apiInstance.getMemberAwards( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberAwardsDocs** -> IracingServiceMethodDocs getMemberAwardsDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberAwardsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getMemberChartData** > IracingAPIResponse getMemberChartData() @@ -283,7 +187,7 @@ This endpoint does not have any parameters. import { MemberApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); @@ -332,138 +236,6 @@ const { status, data } = await apiInstance.getMemberChartData( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberChartDataDocs** -> IracingServiceMethodDocs getMemberChartDataDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberChartDataDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getMemberDocs** -> { [key: string]: IracingServiceMethodDocs; } getMemberDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getMemberGetDocs** -> IracingServiceMethodDocs getMemberGetDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getMemberInfo** > IracingAPIResponse getMemberInfo() @@ -474,7 +246,7 @@ This endpoint does not have any parameters. import { MemberApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); @@ -510,50 +282,6 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberInfoDocs** -> IracingServiceMethodDocs getMemberInfoDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberInfoDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getMemberParticipationCredits** > IracingAPIResponse getMemberParticipationCredits() @@ -564,7 +292,7 @@ This endpoint does not have any parameters. import { MemberApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); @@ -600,50 +328,6 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberParticipationCreditsDocs** -> IracingServiceMethodDocs getMemberParticipationCreditsDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberParticipationCreditsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getMemberProfile** > IracingAPIResponse getMemberProfile() @@ -654,7 +338,7 @@ This endpoint does not have any parameters. import { MemberApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new MemberApi(configuration); @@ -697,47 +381,3 @@ const { status, data } = await apiInstance.getMemberProfile( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getMemberProfileDocs** -> IracingServiceMethodDocs getMemberProfileDocs() - - -### Example - -```typescript -import { - MemberApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new MemberApi(configuration); - -const { status, data } = await apiInstance.getMemberProfileDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/PostAuthRequest.md b/packages/api/client/axios/docs/PostAuthRequest.md similarity index 88% rename from packages/api-client/src/client/docs/PostAuthRequest.md rename to packages/api/client/axios/docs/PostAuthRequest.md index 10359a0..061b07b 100644 --- a/packages/api-client/src/client/docs/PostAuthRequest.md +++ b/packages/api/client/axios/docs/PostAuthRequest.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes ## Example ```typescript -import { PostAuthRequest } from '@iracing-data/api-client'; +import { PostAuthRequest } from '@iracing-data/api-client-axios'; const instance: PostAuthRequest = { email, diff --git a/packages/api-client/src/client/docs/ResultsApi.md b/packages/api/client/axios/docs/ResultsApi.md similarity index 69% rename from packages/api-client/src/client/docs/ResultsApi.md rename to packages/api/client/axios/docs/ResultsApi.md index 0b25533..aedee2c 100644 --- a/packages/api-client/src/client/docs/ResultsApi.md +++ b/packages/api/client/axios/docs/ResultsApi.md @@ -5,20 +5,12 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| |[**getResults**](#getresults) | **GET** /data/results/get | | -|[**getResultsDocs**](#getresultsdocs) | **GET** /data/doc/results | | |[**getResultsEventLog**](#getresultseventlog) | **GET** /data/results/event_log | | -|[**getResultsEventLogDocs**](#getresultseventlogdocs) | **GET** /data/doc/results/event_log | | -|[**getResultsGetDocs**](#getresultsgetdocs) | **GET** /data/doc/results/get | | |[**getResultsLapChartData**](#getresultslapchartdata) | **GET** /data/results/lap_chart_data | | -|[**getResultsLapChartDataDocs**](#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | | |[**getResultsLapData**](#getresultslapdata) | **GET** /data/results/lap_data | | -|[**getResultsLapDataDocs**](#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | | |[**getResultsSearchHosted**](#getresultssearchhosted) | **GET** /data/results/search_hosted | | -|[**getResultsSearchHostedDocs**](#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | | |[**getResultsSearchSeries**](#getresultssearchseries) | **GET** /data/results/search_series | | -|[**getResultsSearchSeriesDocs**](#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | | |[**getResultsSeasonResults**](#getresultsseasonresults) | **GET** /data/results/season_results | | -|[**getResultsSeasonResultsDocs**](#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | | # **getResults** > IracingAPIResponse getResults() @@ -30,7 +22,7 @@ All URIs are relative to *https://members-ng.iracing.com* import { ResultsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new ResultsApi(configuration); @@ -76,50 +68,6 @@ const { status, data } = await apiInstance.getResults( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsDocs** -> { [key: string]: IracingServiceMethodDocs; } getResultsDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getResultsEventLog** > IracingAPIResponse getResultsEventLog() @@ -130,7 +78,7 @@ This endpoint does not have any parameters. import { ResultsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new ResultsApi(configuration); @@ -176,94 +124,6 @@ const { status, data } = await apiInstance.getResultsEventLog( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsEventLogDocs** -> IracingServiceMethodDocs getResultsEventLogDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsEventLogDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getResultsGetDocs** -> IracingServiceMethodDocs getResultsGetDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getResultsLapChartData** > IracingAPIResponse getResultsLapChartData() @@ -274,7 +134,7 @@ This endpoint does not have any parameters. import { ResultsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new ResultsApi(configuration); @@ -320,50 +180,6 @@ const { status, data } = await apiInstance.getResultsLapChartData( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsLapChartDataDocs** -> IracingServiceMethodDocs getResultsLapChartDataDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsLapChartDataDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getResultsLapData** > IracingAPIResponse getResultsLapData() @@ -374,7 +190,7 @@ This endpoint does not have any parameters. import { ResultsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new ResultsApi(configuration); @@ -426,50 +242,6 @@ const { status, data } = await apiInstance.getResultsLapData( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsLapDataDocs** -> IracingServiceMethodDocs getResultsLapDataDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsLapDataDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getResultsSearchHosted** > IracingAPIResponse getResultsSearchHosted() @@ -480,7 +252,7 @@ This endpoint does not have any parameters. import { ResultsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new ResultsApi(configuration); @@ -559,50 +331,6 @@ const { status, data } = await apiInstance.getResultsSearchHosted( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsSearchHostedDocs** -> IracingServiceMethodDocs getResultsSearchHostedDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsSearchHostedDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getResultsSearchSeries** > IracingAPIResponse getResultsSearchSeries() @@ -613,7 +341,7 @@ This endpoint does not have any parameters. import { ResultsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new ResultsApi(configuration); @@ -692,50 +420,6 @@ const { status, data } = await apiInstance.getResultsSearchSeries( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsSearchSeriesDocs** -> IracingServiceMethodDocs getResultsSearchSeriesDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsSearchSeriesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getResultsSeasonResults** > IracingAPIResponse getResultsSeasonResults() @@ -746,7 +430,7 @@ This endpoint does not have any parameters. import { ResultsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new ResultsApi(configuration); @@ -795,47 +479,3 @@ const { status, data } = await apiInstance.getResultsSeasonResults( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getResultsSeasonResultsDocs** -> IracingServiceMethodDocs getResultsSeasonResultsDocs() - - -### Example - -```typescript -import { - ResultsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new ResultsApi(configuration); - -const { status, data } = await apiInstance.getResultsSeasonResultsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/SeasonApi.md b/packages/api/client/axios/docs/SeasonApi.md similarity index 57% rename from packages/api-client/src/client/docs/SeasonApi.md rename to packages/api/client/axios/docs/SeasonApi.md index bb0c3ac..c09198d 100644 --- a/packages/api-client/src/client/docs/SeasonApi.md +++ b/packages/api/client/axios/docs/SeasonApi.md @@ -4,59 +4,10 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**getSeasonDocs**](#getseasondocs) | **GET** /data/doc/season | | |[**getSeasonList**](#getseasonlist) | **GET** /data/season/list | | -|[**getSeasonListDocs**](#getseasonlistdocs) | **GET** /data/doc/season/list | | |[**getSeasonRaceGuide**](#getseasonraceguide) | **GET** /data/season/race_guide | | -|[**getSeasonRaceGuideDocs**](#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | | |[**getSeasonSpectatorSubsessionIds**](#getseasonspectatorsubsessionids) | **GET** /data/season/spectator_subsessionids | | |[**getSeasonSpectatorSubsessionIdsDetail**](#getseasonspectatorsubsessionidsdetail) | **GET** /data/season/spectator_subsessionids_detail | | -|[**getSeasonSpectatorSubsessionIdsDetailDocs**](#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | | -|[**getSeasonSpectatorSubsessionIdsDocs**](#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | | - -# **getSeasonDocs** -> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() - - -### Example - -```typescript -import { - SeasonApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeasonApi(configuration); - -const { status, data } = await apiInstance.getSeasonDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **getSeasonList** > IracingAPIResponse getSeasonList() @@ -68,7 +19,7 @@ This endpoint does not have any parameters. import { SeasonApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); @@ -114,50 +65,6 @@ const { status, data } = await apiInstance.getSeasonList( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonListDocs** -> IracingServiceMethodDocs getSeasonListDocs() - - -### Example - -```typescript -import { - SeasonApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeasonApi(configuration); - -const { status, data } = await apiInstance.getSeasonListDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getSeasonRaceGuide** > IracingAPIResponse getSeasonRaceGuide() @@ -168,7 +75,7 @@ This endpoint does not have any parameters. import { SeasonApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); @@ -214,50 +121,6 @@ const { status, data } = await apiInstance.getSeasonRaceGuide( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonRaceGuideDocs** -> IracingServiceMethodDocs getSeasonRaceGuideDocs() - - -### Example - -```typescript -import { - SeasonApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeasonApi(configuration); - -const { status, data } = await apiInstance.getSeasonRaceGuideDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getSeasonSpectatorSubsessionIds** > IracingAPIResponse getSeasonSpectatorSubsessionIds() @@ -268,7 +131,7 @@ This endpoint does not have any parameters. import { SeasonApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); @@ -321,7 +184,7 @@ const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIds( import { SeasonApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeasonApi(configuration); @@ -367,91 +230,3 @@ const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDetail [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeasonSpectatorSubsessionIdsDetailDocs** -> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDetailDocs() - - -### Example - -```typescript -import { - SeasonApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeasonApi(configuration); - -const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDetailDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getSeasonSpectatorSubsessionIdsDocs** -> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDocs() - - -### Example - -```typescript -import { - SeasonApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeasonApi(configuration); - -const { status, data } = await apiInstance.getSeasonSpectatorSubsessionIdsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/SeriesApi.md b/packages/api/client/axios/docs/SeriesApi.md similarity index 54% rename from packages/api-client/src/client/docs/SeriesApi.md rename to packages/api/client/axios/docs/SeriesApi.md index 4606a64..bf88829 100644 --- a/packages/api-client/src/client/docs/SeriesApi.md +++ b/packages/api/client/axios/docs/SeriesApi.md @@ -6,19 +6,11 @@ All URIs are relative to *https://members-ng.iracing.com* |------------- | ------------- | -------------| |[**getSeries**](#getseries) | **GET** /data/series/get | | |[**getSeriesAssets**](#getseriesassets) | **GET** /data/series/assets | | -|[**getSeriesAssetsDocs**](#getseriesassetsdocs) | **GET** /data/doc/series/assets | | -|[**getSeriesDocs**](#getseriesdocs) | **GET** /data/doc/series | | -|[**getSeriesGetDocs**](#getseriesgetdocs) | **GET** /data/doc/series/get | | |[**getSeriesPastSeasons**](#getseriespastseasons) | **GET** /data/series/past_seasons | | -|[**getSeriesPastSeasonsDocs**](#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | | |[**getSeriesSeasonList**](#getseriesseasonlist) | **GET** /data/series/season_list | | -|[**getSeriesSeasonListDocs**](#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | | |[**getSeriesSeasonSchedule**](#getseriesseasonschedule) | **GET** /data/series/season_schedule | | -|[**getSeriesSeasonScheduleDocs**](#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | | |[**getSeriesSeasons**](#getseriesseasons) | **GET** /data/series/seasons | | -|[**getSeriesSeasonsDocs**](#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | | |[**getSeriesStatsSeries**](#getseriesstatsseries) | **GET** /data/series/stats_series | | -|[**getSeriesStatsSeriesDocs**](#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | | # **getSeries** > IracingAPIResponse getSeries() @@ -30,7 +22,7 @@ All URIs are relative to *https://members-ng.iracing.com* import { SeriesApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); @@ -76,7 +68,7 @@ This endpoint does not have any parameters. import { SeriesApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); @@ -112,138 +104,6 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesAssetsDocs** -> IracingServiceMethodDocs getSeriesAssetsDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesAssetsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getSeriesDocs** -> { [key: string]: IracingServiceMethodDocs; } getSeriesDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getSeriesGetDocs** -> IracingServiceMethodDocs getSeriesGetDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesGetDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getSeriesPastSeasons** > IracingAPIResponse getSeriesPastSeasons() @@ -254,7 +114,7 @@ This endpoint does not have any parameters. import { SeriesApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); @@ -297,50 +157,6 @@ const { status, data } = await apiInstance.getSeriesPastSeasons( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesPastSeasonsDocs** -> IracingServiceMethodDocs getSeriesPastSeasonsDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesPastSeasonsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getSeriesSeasonList** > IracingAPIResponse getSeriesSeasonList() @@ -351,7 +167,7 @@ This endpoint does not have any parameters. import { SeriesApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); @@ -400,50 +216,6 @@ const { status, data } = await apiInstance.getSeriesSeasonList( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesSeasonListDocs** -> IracingServiceMethodDocs getSeriesSeasonListDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesSeasonListDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getSeriesSeasonSchedule** > IracingAPIResponse getSeriesSeasonSchedule() @@ -454,7 +226,7 @@ This endpoint does not have any parameters. import { SeriesApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); @@ -497,50 +269,6 @@ const { status, data } = await apiInstance.getSeriesSeasonSchedule( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesSeasonScheduleDocs** -> IracingServiceMethodDocs getSeriesSeasonScheduleDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesSeasonScheduleDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getSeriesSeasons** > IracingAPIResponse getSeriesSeasons() @@ -551,7 +279,7 @@ This endpoint does not have any parameters. import { SeriesApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); @@ -600,50 +328,6 @@ const { status, data } = await apiInstance.getSeriesSeasons( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesSeasonsDocs** -> IracingServiceMethodDocs getSeriesSeasonsDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesSeasonsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - # **getSeriesStatsSeries** > IracingAPIResponse getSeriesStatsSeries() @@ -654,7 +338,7 @@ This endpoint does not have any parameters. import { SeriesApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new SeriesApi(configuration); @@ -690,47 +374,3 @@ This endpoint does not have any parameters. [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getSeriesStatsSeriesDocs** -> IracingServiceMethodDocs getSeriesStatsSeriesDocs() - - -### Example - -```typescript -import { - SeriesApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new SeriesApi(configuration); - -const { status, data } = await apiInstance.getSeriesStatsSeriesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api-client/src/client/docs/StatsApi.md b/packages/api/client/axios/docs/StatsApi.md similarity index 60% rename from packages/api-client/src/client/docs/StatsApi.md rename to packages/api/client/axios/docs/StatsApi.md index 87406c7..38c11f5 100644 --- a/packages/api-client/src/client/docs/StatsApi.md +++ b/packages/api/client/axios/docs/StatsApi.md @@ -4,729 +4,23 @@ All URIs are relative to *https://members-ng.iracing.com* |Method | HTTP request | Description| |------------- | ------------- | -------------| -|[**getStatsDocs**](#getstatsdocs) | **GET** /data/doc/stats | | |[**getStatsMemberBests**](#getstatsmemberbests) | **GET** /data/stats/member_bests | | -|[**getStatsMemberBestsDocs**](#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | | |[**getStatsMemberCareer**](#getstatsmembercareer) | **GET** /data/stats/member_career | | -|[**getStatsMemberCareerDocs**](#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | | |[**getStatsMemberDivision**](#getstatsmemberdivision) | **GET** /data/stats/member_division | | -|[**getStatsMemberDivisionDocs**](#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | | |[**getStatsMemberRecap**](#getstatsmemberrecap) | **GET** /data/stats/member_recap | | -|[**getStatsMemberRecapDocs**](#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | | |[**getStatsMemberRecentRaces**](#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | | -|[**getStatsMemberRecentRacesDocs**](#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | | |[**getStatsMemberSummary**](#getstatsmembersummary) | **GET** /data/stats/member_summary | | -|[**getStatsMemberSummaryDocs**](#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | | |[**getStatsMemberYearly**](#getstatsmemberyearly) | **GET** /data/stats/member_yearly | | -|[**getStatsMemberYearlyDocs**](#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | | |[**getStatsSeasonDriverStandings**](#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | | -|[**getStatsSeasonDriverStandingsDocs**](#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | | |[**getStatsSeasonQualifyResults**](#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | | -|[**getStatsSeasonQualifyResultsDocs**](#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | | |[**getStatsSeasonSupersessionStandings**](#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | | -|[**getStatsSeasonSupersessionStandingsDocs**](#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | | -|[**getStatsSeasonTTResultsDocs**](#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | | -|[**getStatsSeasonTTStandingsDocs**](#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | | |[**getStatsSeasonTeamStandings**](#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | | -|[**getStatsSeasonTeamStandingsDocs**](#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | | |[**getStatsSeasonTimeTrialResults**](#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | | |[**getStatsSeasonTimeTrialStandings**](#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | | |[**getStatsWorldRecords**](#getstatsworldrecords) | **GET** /data/stats/world_records | | -|[**getStatsWorldRecordsDocs**](#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | | -# **getStatsDocs** -> { [key: string]: IracingServiceMethodDocs; } getStatsDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**{ [key: string]: IracingServiceMethodDocs; }** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberBests** -> IracingAPIResponse getStatsMemberBests() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) -let car_id: number; //First call should exclude car_id; use cars_driven list in return for subsequent calls. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberBests( - cust_id, - car_id -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| -| **car_id** | [**number**] | First call should exclude car_id; use cars_driven list in return for subsequent calls. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberBestsDocs** -> IracingServiceMethodDocs getStatsMemberBestsDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsMemberBestsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberCareer** -> IracingAPIResponse getStatsMemberCareer() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberCareer( - cust_id -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberCareerDocs** -> IracingServiceMethodDocs getStatsMemberCareerDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsMemberCareerDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberDivision** -> IracingAPIResponse getStatsMemberDivision() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -let season_id: number; // (default to undefined) -let event_type: 4 | 5; //The event type code for the division type: 4 - Time Trial; 5 - Race (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberDivision( - season_id, - event_type -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| -| **event_type** | [**4 | 5**]**Array<4 | 5>** | The event type code for the division type: 4 - Time Trial; 5 - Race | defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberDivisionDocs** -> IracingServiceMethodDocs getStatsMemberDivisionDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsMemberDivisionDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberRecap** -> IracingAPIResponse getStatsMemberRecap() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) -let year: 1 | 2 | 3 | 4; //Season year; if not supplied the current calendar year (UTC) is used. (optional) (default to undefined) -let season: number; //Season (quarter) within the year; if not supplied the recap will be for the entire year. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberRecap( - cust_id, - year, - season -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| -| **year** | [**1 | 2 | 3 | 4**]**Array<1 | 2 | 3 | 4>** | Season year; if not supplied the current calendar year (UTC) is used. | (optional) defaults to undefined| -| **season** | [**number**] | Season (quarter) within the year; if not supplied the recap will be for the entire year. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberRecapDocs** -> IracingServiceMethodDocs getStatsMemberRecapDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsMemberRecapDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberRecentRaces** -> IracingAPIResponse getStatsMemberRecentRaces() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberRecentRaces( - cust_id -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberRecentRacesDocs** -> IracingServiceMethodDocs getStatsMemberRecentRacesDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsMemberRecentRacesDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberSummary** -> IracingAPIResponse getStatsMemberSummary() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberSummary( - cust_id -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberSummaryDocs** -> IracingServiceMethodDocs getStatsMemberSummaryDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsMemberSummaryDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberYearly** -> IracingAPIResponse getStatsMemberYearly() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) - -const { status, data } = await apiInstance.getStatsMemberYearly( - cust_id -); -``` - -### Parameters - -|Name | Type | Description | Notes| -|------------- | ------------- | ------------- | -------------| -| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| - - -### Return type - -**IracingAPIResponse** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**401** | Access token is missing or invalid. | - | -|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| -|**503** | Maintenance | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - -# **getStatsMemberYearlyDocs** -> IracingServiceMethodDocs getStatsMemberYearlyDocs() +# **getStatsMemberBests** +> IracingAPIResponse getStatsMemberBests() ### Example @@ -735,21 +29,31 @@ const { status, data } = await apiInstance.getStatsMemberYearly( import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.getStatsMemberYearlyDocs(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) +let car_id: number; //First call should exclude car_id; use cars_driven list in return for subsequent calls. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberBests( + cust_id, + car_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +| **car_id** | [**number**] | First call should exclude car_id; use cars_driven list in return for subsequent calls. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -764,13 +68,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonDriverStandings** -> IracingAPIResponse getStatsSeasonDriverStandings() +# **getStatsMemberCareer** +> IracingAPIResponse getStatsMemberCareer() ### Example @@ -779,21 +85,15 @@ This endpoint does not have any parameters. import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let season_id: number; // (default to undefined) -let car_class_id: number; // (default to undefined) -let division: IracingDivision; // (optional) (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonDriverStandings( - season_id, - car_class_id, - division, - race_week_num +const { status, data } = await apiInstance.getStatsMemberCareer( + cust_id ); ``` @@ -801,10 +101,7 @@ const { status, data } = await apiInstance.getStatsSeasonDriverStandings( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| -| **car_class_id** | [**number**] | | defaults to undefined| -| **division** | **IracingDivision** | | (optional) defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type @@ -831,8 +128,8 @@ const { status, data } = await apiInstance.getStatsSeasonDriverStandings( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonDriverStandingsDocs** -> IracingServiceMethodDocs getStatsSeasonDriverStandingsDocs() +# **getStatsMemberDivision** +> IracingAPIResponse getStatsMemberDivision() ### Example @@ -841,21 +138,31 @@ const { status, data } = await apiInstance.getStatsSeasonDriverStandings( import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.getStatsSeasonDriverStandingsDocs(); +let season_id: number; // (default to undefined) +let event_type: 4 | 5; //The event type code for the division type: 4 - Time Trial; 5 - Race (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberDivision( + season_id, + event_type +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **event_type** | [**4 | 5**]**Array<4 | 5>** | The event type code for the division type: 4 - Time Trial; 5 - Race | defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -870,13 +177,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonQualifyResults** -> IracingAPIResponse getStatsSeasonQualifyResults() +# **getStatsMemberRecap** +> IracingAPIResponse getStatsMemberRecap() ### Example @@ -885,21 +194,19 @@ This endpoint does not have any parameters. import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let season_id: number; // (default to undefined) -let car_class_id: number; // (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (default to undefined) -let division: IracingDivision; // (optional) (default to undefined) +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) +let year: 1 | 2 | 3 | 4; //Season year; if not supplied the current calendar year (UTC) is used. (optional) (default to undefined) +let season: number; //Season (quarter) within the year; if not supplied the recap will be for the entire year. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonQualifyResults( - season_id, - car_class_id, - race_week_num, - division +const { status, data } = await apiInstance.getStatsMemberRecap( + cust_id, + year, + season ); ``` @@ -907,10 +214,9 @@ const { status, data } = await apiInstance.getStatsSeasonQualifyResults( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| -| **car_class_id** | [**number**] | | defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| -| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| +| **year** | [**1 | 2 | 3 | 4**]**Array<1 | 2 | 3 | 4>** | Season year; if not supplied the current calendar year (UTC) is used. | (optional) defaults to undefined| +| **season** | [**number**] | Season (quarter) within the year; if not supplied the recap will be for the entire year. | (optional) defaults to undefined| ### Return type @@ -937,8 +243,8 @@ const { status, data } = await apiInstance.getStatsSeasonQualifyResults( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonQualifyResultsDocs** -> IracingServiceMethodDocs getStatsSeasonQualifyResultsDocs() +# **getStatsMemberRecentRaces** +> IracingAPIResponse getStatsMemberRecentRaces() ### Example @@ -947,21 +253,28 @@ const { status, data } = await apiInstance.getStatsSeasonQualifyResults( import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.getStatsSeasonQualifyResultsDocs(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberRecentRaces( + cust_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -976,13 +289,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonSupersessionStandings** -> IracingAPIResponse getStatsSeasonSupersessionStandings() +# **getStatsMemberSummary** +> IracingAPIResponse getStatsMemberSummary() ### Example @@ -991,21 +306,15 @@ This endpoint does not have any parameters. import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -let season_id: number; // (default to undefined) -let car_class_id: number; // (default to undefined) -let division: IracingDivision; // (optional) (default to undefined) -let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( - season_id, - car_class_id, - division, - race_week_num +const { status, data } = await apiInstance.getStatsMemberSummary( + cust_id ); ``` @@ -1013,10 +322,7 @@ const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( |Name | Type | Description | Notes| |------------- | ------------- | ------------- | -------------| -| **season_id** | [**number**] | | defaults to undefined| -| **car_class_id** | [**number**] | | defaults to undefined| -| **division** | **IracingDivision** | | (optional) defaults to undefined| -| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type @@ -1043,8 +349,8 @@ const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonSupersessionStandingsDocs** -> IracingServiceMethodDocs getStatsSeasonSupersessionStandingsDocs() +# **getStatsMemberYearly** +> IracingAPIResponse getStatsMemberYearly() ### Example @@ -1053,21 +359,28 @@ const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.getStatsSeasonSupersessionStandingsDocs(); +let cust_id: number; //Defaults to the authenticated member. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsMemberYearly( + cust_id +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **cust_id** | [**number**] | Defaults to the authenticated member. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -1082,13 +395,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonTTResultsDocs** -> IracingServiceMethodDocs getStatsSeasonTTResultsDocs() +# **getStatsSeasonDriverStandings** +> IracingAPIResponse getStatsSeasonDriverStandings() ### Example @@ -1097,21 +412,37 @@ This endpoint does not have any parameters. import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.getStatsSeasonTTResultsDocs(); +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonDriverStandings( + season_id, + car_class_id, + division, + race_week_num +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -1126,13 +457,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonTTStandingsDocs** -> IracingServiceMethodDocs getStatsSeasonTTStandingsDocs() +# **getStatsSeasonQualifyResults** +> IracingAPIResponse getStatsSeasonQualifyResults() ### Example @@ -1141,21 +474,37 @@ This endpoint does not have any parameters. import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.getStatsSeasonTTStandingsDocs(); +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonQualifyResults( + season_id, + car_class_id, + race_week_num, + division +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -1170,13 +519,15 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonTeamStandings** -> IracingAPIResponse getStatsSeasonTeamStandings() +# **getStatsSeasonSupersessionStandings** +> IracingAPIResponse getStatsSeasonSupersessionStandings() ### Example @@ -1185,18 +536,20 @@ This endpoint does not have any parameters. import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); let season_id: number; // (default to undefined) let car_class_id: number; // (default to undefined) +let division: IracingDivision; // (optional) (default to undefined) let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) -const { status, data } = await apiInstance.getStatsSeasonTeamStandings( +const { status, data } = await apiInstance.getStatsSeasonSupersessionStandings( season_id, car_class_id, + division, race_week_num ); ``` @@ -1207,6 +560,7 @@ const { status, data } = await apiInstance.getStatsSeasonTeamStandings( |------------- | ------------- | ------------- | -------------| | **season_id** | [**number**] | | defaults to undefined| | **car_class_id** | [**number**] | | defaults to undefined| +| **division** | **IracingDivision** | | (optional) defaults to undefined| | **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| @@ -1234,8 +588,8 @@ const { status, data } = await apiInstance.getStatsSeasonTeamStandings( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsSeasonTeamStandingsDocs** -> IracingServiceMethodDocs getStatsSeasonTeamStandingsDocs() +# **getStatsSeasonTeamStandings** +> IracingAPIResponse getStatsSeasonTeamStandings() ### Example @@ -1244,21 +598,34 @@ const { status, data } = await apiInstance.getStatsSeasonTeamStandings( import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); -const { status, data } = await apiInstance.getStatsSeasonTeamStandingsDocs(); +let season_id: number; // (default to undefined) +let car_class_id: number; // (default to undefined) +let race_week_num: number; //The first race week of a season is 0. (optional) (default to undefined) + +const { status, data } = await apiInstance.getStatsSeasonTeamStandings( + season_id, + car_class_id, + race_week_num +); ``` ### Parameters -This endpoint does not have any parameters. + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **season_id** | [**number**] | | defaults to undefined| +| **car_class_id** | [**number**] | | defaults to undefined| +| **race_week_num** | [**number**] | The first race week of a season is 0. | (optional) defaults to undefined| ### Return type -**IracingServiceMethodDocs** +**IracingAPIResponse** ### Authorization @@ -1273,8 +640,10 @@ This endpoint does not have any parameters. ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -|**200** | Success | - | +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| |**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) @@ -1288,7 +657,7 @@ This endpoint does not have any parameters. import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); @@ -1350,7 +719,7 @@ const { status, data } = await apiInstance.getStatsSeasonTimeTrialResults( import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); @@ -1412,7 +781,7 @@ const { status, data } = await apiInstance.getStatsSeasonTimeTrialStandings( import { StatsApi, Configuration -} from '@iracing-data/api-client'; +} from '@iracing-data/api-client-axios'; const configuration = new Configuration(); const apiInstance = new StatsApi(configuration); @@ -1464,47 +833,3 @@ const { status, data } = await apiInstance.getStatsWorldRecords( [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **getStatsWorldRecordsDocs** -> IracingServiceMethodDocs getStatsWorldRecordsDocs() - - -### Example - -```typescript -import { - StatsApi, - Configuration -} from '@iracing-data/api-client'; - -const configuration = new Configuration(); -const apiInstance = new StatsApi(configuration); - -const { status, data } = await apiInstance.getStatsWorldRecordsDocs(); -``` - -### Parameters -This endpoint does not have any parameters. - - -### Return type - -**IracingServiceMethodDocs** - -### Authorization - -[bearerAuth](../README.md#bearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - - -### HTTP response details -| Status code | Description | Response headers | -|-------------|-------------|------------------| -|**200** | Success | - | -|**401** | Access token is missing or invalid. | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/packages/api/client/axios/docs/TeamApi.md b/packages/api/client/axios/docs/TeamApi.md new file mode 100644 index 0000000..4168be8 --- /dev/null +++ b/packages/api/client/axios/docs/TeamApi.md @@ -0,0 +1,111 @@ +# TeamApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getTeam**](#getteam) | **GET** /data/team/get | | +|[**getTeamMembership**](#getteammembership) | **GET** /data/team/membership | | + +# **getTeam** +> IracingAPIResponse getTeam() + + +### Example + +```typescript +import { + TeamApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new TeamApi(configuration); + +let team_id: number; // (default to undefined) +let include_licenses: boolean; //For faster responses, only request when necessary. (optional) (default to undefined) + +const { status, data } = await apiInstance.getTeam( + team_id, + include_licenses +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **team_id** | [**number**] | | defaults to undefined| +| **include_licenses** | [**boolean**] | For faster responses, only request when necessary. | (optional) defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTeamMembership** +> IracingAPIResponse getTeamMembership() + + +### Example + +```typescript +import { + TeamApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new TeamApi(configuration); + +const { status, data } = await apiInstance.getTeamMembership(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api/client/axios/docs/TimeAttackApi.md b/packages/api/client/axios/docs/TimeAttackApi.md new file mode 100644 index 0000000..fc04c23 --- /dev/null +++ b/packages/api/client/axios/docs/TimeAttackApi.md @@ -0,0 +1,61 @@ +# TimeAttackApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getTimeAttackMemberSeasonResults**](#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | | + +# **getTimeAttackMemberSeasonResults** +> IracingAPIResponse getTimeAttackMemberSeasonResults() + + +### Example + +```typescript +import { + TimeAttackApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new TimeAttackApi(configuration); + +let ta_comp_season_id: number; // (default to undefined) + +const { status, data } = await apiInstance.getTimeAttackMemberSeasonResults( + ta_comp_season_id +); +``` + +### Parameters + +|Name | Type | Description | Notes| +|------------- | ------------- | ------------- | -------------| +| **ta_comp_season_id** | [**number**] | | defaults to undefined| + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api/client/axios/docs/TrackApi.md b/packages/api/client/axios/docs/TrackApi.md new file mode 100644 index 0000000..e843b24 --- /dev/null +++ b/packages/api/client/axios/docs/TrackApi.md @@ -0,0 +1,101 @@ +# TrackApi + +All URIs are relative to *https://members-ng.iracing.com* + +|Method | HTTP request | Description| +|------------- | ------------- | -------------| +|[**getTrack**](#gettrack) | **GET** /data/track/get | | +|[**getTrackAssets**](#gettrackassets) | **GET** /data/track/assets | | + +# **getTrack** +> IracingAPIResponse getTrack() + + +### Example + +```typescript +import { + TrackApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new TrackApi(configuration); + +const { status, data } = await apiInstance.getTrack(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **getTrackAssets** +> IracingAPIResponse getTrackAssets() + + +### Example + +```typescript +import { + TrackApi, + Configuration +} from '@iracing-data/api-client-axios'; + +const configuration = new Configuration(); +const apiInstance = new TrackApi(configuration); + +const { status, data } = await apiInstance.getTrackAssets(); +``` + +### Parameters +This endpoint does not have any parameters. + + +### Return type + +**IracingAPIResponse** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +|**200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**401** | Access token is missing or invalid. | - | +|**429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +|**503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/packages/api-client/src/client/git_push.sh b/packages/api/client/axios/git_push.sh similarity index 100% rename from packages/api-client/src/client/git_push.sh rename to packages/api/client/axios/git_push.sh diff --git a/packages/api-client/src/client/index.ts b/packages/api/client/axios/index.ts similarity index 100% rename from packages/api-client/src/client/index.ts rename to packages/api/client/axios/index.ts diff --git a/packages/api-client/src/client/package.json b/packages/api/client/axios/package.json similarity index 79% rename from packages/api-client/src/client/package.json rename to packages/api/client/axios/package.json index 66afd9d..7ce779c 100644 --- a/packages/api-client/src/client/package.json +++ b/packages/api/client/axios/package.json @@ -1,7 +1,7 @@ { - "name": "@iracing-data/api-client", + "name": "@iracing-data/api-client-axios", "version": "0.0.1", - "description": "OpenAPI client for @iracing-data/api-client", + "description": "OpenAPI client for @iracing-data/api-client-axios", "author": "OpenAPI-Generator Contributors", "repository": { "type": "git", @@ -12,7 +12,7 @@ "typescript", "openapi-client", "openapi-generator", - "@iracing-data/api-client" + "@iracing-data/api-client-axios" ], "license": "Unlicense", "main": "./dist/index.js", diff --git a/packages/api-client/src/client/tsconfig.json b/packages/api/client/axios/tsconfig.json similarity index 100% rename from packages/api-client/src/client/tsconfig.json rename to packages/api/client/axios/tsconfig.json diff --git a/packages/api/client/fetch/.gitignore b/packages/api/client/fetch/.gitignore new file mode 100644 index 0000000..149b576 --- /dev/null +++ b/packages/api/client/fetch/.gitignore @@ -0,0 +1,4 @@ +wwwroot/*.js +node_modules +typings +dist diff --git a/packages/api/client/fetch/.npmignore b/packages/api/client/fetch/.npmignore new file mode 100644 index 0000000..42061c0 --- /dev/null +++ b/packages/api/client/fetch/.npmignore @@ -0,0 +1 @@ +README.md \ No newline at end of file diff --git a/packages/api/client/fetch/.openapi-generator-ignore b/packages/api/client/fetch/.openapi-generator-ignore new file mode 100644 index 0000000..7484ee5 --- /dev/null +++ b/packages/api/client/fetch/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/packages/api/client/fetch/.openapi-generator/FILES b/packages/api/client/fetch/.openapi-generator/FILES new file mode 100644 index 0000000..e87cb1e --- /dev/null +++ b/packages/api/client/fetch/.openapi-generator/FILES @@ -0,0 +1,59 @@ +.gitignore +.npmignore +README.md +docs/AuthApi.md +docs/CarApi.md +docs/CarclassApi.md +docs/ConstantsApi.md +docs/DocApi.md +docs/DriverStatsApi.md +docs/ErrorResponse.md +docs/HostedApi.md +docs/IracingAPIResponse.md +docs/IracingCategory.md +docs/IracingDivision.md +docs/IracingEventType.md +docs/IracingServiceMethodDocs.md +docs/IracingServiceMethodParametersDocs.md +docs/LeagueApi.md +docs/LookupApi.md +docs/MemberApi.md +docs/PostAuthRequest.md +docs/ResultsApi.md +docs/SeasonApi.md +docs/SeriesApi.md +docs/StatsApi.md +docs/TeamApi.md +docs/TimeAttackApi.md +docs/TrackApi.md +package.json +src/apis/AuthApi.ts +src/apis/CarApi.ts +src/apis/CarclassApi.ts +src/apis/ConstantsApi.ts +src/apis/DocApi.ts +src/apis/DriverStatsApi.ts +src/apis/HostedApi.ts +src/apis/LeagueApi.ts +src/apis/LookupApi.ts +src/apis/MemberApi.ts +src/apis/ResultsApi.ts +src/apis/SeasonApi.ts +src/apis/SeriesApi.ts +src/apis/StatsApi.ts +src/apis/TeamApi.ts +src/apis/TimeAttackApi.ts +src/apis/TrackApi.ts +src/apis/index.ts +src/index.ts +src/models/ErrorResponse.ts +src/models/IracingAPIResponse.ts +src/models/IracingCategory.ts +src/models/IracingDivision.ts +src/models/IracingEventType.ts +src/models/IracingServiceMethodDocs.ts +src/models/IracingServiceMethodParametersDocs.ts +src/models/PostAuthRequest.ts +src/models/index.ts +src/runtime.ts +tsconfig.json diff --git a/packages/api/client/fetch/.openapi-generator/VERSION b/packages/api/client/fetch/.openapi-generator/VERSION new file mode 100644 index 0000000..6328c54 --- /dev/null +++ b/packages/api/client/fetch/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.17.0 diff --git a/packages/api/client/fetch/README.md b/packages/api/client/fetch/README.md new file mode 100644 index 0000000..b934569 --- /dev/null +++ b/packages/api/client/fetch/README.md @@ -0,0 +1,288 @@ +# @iracing-data/api-client-fetch@0.0.1 + +A TypeScript SDK client for the members-ng.iracing.com API. + +## Usage + +First, install the SDK from npm. + +```bash +npm install @iracing-data/api-client-fetch --save +``` + +Next, try it out. + + +```ts +import { + Configuration, + AuthApi, +} from '@iracing-data/api-client-fetch'; +import type { PostAuthOperationRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new AuthApi(config); + + const body = { + // PostAuthRequest (optional) + post_auth_request: ..., + } satisfies PostAuthOperationRequest; + + try { + const data = await api.postAuth(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + + +## Documentation + +### API Endpoints + +All URIs are relative to *https://members-ng.iracing.com* + +| Class | Method | HTTP request | Description +| ----- | ------ | ------------ | ------------- +*AuthApi* | [**postAuth**](docs/AuthApi.md#postauthoperation) | **POST** /auth | +*CarApi* | [**getCar**](docs/CarApi.md#getcar) | **GET** /data/car/get | +*CarApi* | [**getCarAssets**](docs/CarApi.md#getcarassets) | **GET** /data/car/assets | +*CarclassApi* | [**getCarClass**](docs/CarclassApi.md#getcarclass) | **GET** /data/carclass/get | Gets car classes. +*ConstantsApi* | [**getConstantsCategories**](docs/ConstantsApi.md#getconstantscategories) | **GET** /data/constants/categories | +*ConstantsApi* | [**getConstantsDivisions**](docs/ConstantsApi.md#getconstantsdivisions) | **GET** /data/constants/divisions | +*ConstantsApi* | [**getConstantsEventTypes**](docs/ConstantsApi.md#getconstantseventtypes) | **GET** /data/constants/event_types | +*DocApi* | [**getCarAssetsDocs**](docs/DocApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | +*DocApi* | [**getCarClassDocs**](docs/DocApi.md#getcarclassdocs) | **GET** /data/doc/carclass | +*DocApi* | [**getCarClassGetDocs**](docs/DocApi.md#getcarclassgetdocs) | **GET** /data/doc/carclass/get | +*DocApi* | [**getCarDocs**](docs/DocApi.md#getcardocs) | **GET** /data/doc/car | +*DocApi* | [**getCarGetDocs**](docs/DocApi.md#getcargetdocs) | **GET** /data/doc/car/get | +*DocApi* | [**getConstantsCategoriesDocs**](docs/DocApi.md#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | +*DocApi* | [**getConstantsDivisionsDocs**](docs/DocApi.md#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | +*DocApi* | [**getConstantsDocs**](docs/DocApi.md#getconstantsdocs) | **GET** /data/doc/constants | +*DocApi* | [**getConstantsEventTypesDocs**](docs/DocApi.md#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | +*DocApi* | [**getDocs**](docs/DocApi.md#getdocs) | **GET** /data/doc | +*DocApi* | [**getDriverStatsByCategoryCategoryDocs**](docs/DocApi.md#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | +*DocApi* | [**getDriverStatsByCategoryDocs**](docs/DocApi.md#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | +*DocApi* | [**getHostedCombinedSessionsDocs**](docs/DocApi.md#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | +*DocApi* | [**getHostedDocs**](docs/DocApi.md#gethosteddocs) | **GET** /data/doc/hosted | +*DocApi* | [**getHostedSessionsDocs**](docs/DocApi.md#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | +*DocApi* | [**getLeagueCustomerLeagueSessionsDocs**](docs/DocApi.md#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | +*DocApi* | [**getLeagueDirectoryDocs**](docs/DocApi.md#getleaguedirectorydocs) | **GET** /data/doc/league/directory | +*DocApi* | [**getLeagueDocs**](docs/DocApi.md#getleaguedocs) | **GET** /data/doc/league | +*DocApi* | [**getLeagueGetDocs**](docs/DocApi.md#getleaguegetdocs) | **GET** /data/doc/league/get | +*DocApi* | [**getLeagueGetPointsSystemsDocs**](docs/DocApi.md#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | +*DocApi* | [**getLeagueMembershipDocs**](docs/DocApi.md#getleaguemembershipdocs) | **GET** /data/doc/league/membership | +*DocApi* | [**getLeagueRosterDocs**](docs/DocApi.md#getleaguerosterdocs) | **GET** /data/doc/league/roster | +*DocApi* | [**getLeagueSeasonSessionsDocs**](docs/DocApi.md#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | +*DocApi* | [**getLeagueSeasonStandingsDocs**](docs/DocApi.md#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | +*DocApi* | [**getLeagueSeasonsDocs**](docs/DocApi.md#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | +*DocApi* | [**getLookupCountriesDocs**](docs/DocApi.md#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | +*DocApi* | [**getLookupDocs**](docs/DocApi.md#getlookupdocs) | **GET** /data/doc/lookup | +*DocApi* | [**getLookupDriversDocs**](docs/DocApi.md#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | +*DocApi* | [**getLookupFlairsDocs**](docs/DocApi.md#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | +*DocApi* | [**getLookupGetDocs**](docs/DocApi.md#getlookupgetdocs) | **GET** /data/doc/lookup/get | +*DocApi* | [**getLookupLicensesDocs**](docs/DocApi.md#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | +*DocApi* | [**getMemberAwardInstancesDocs**](docs/DocApi.md#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | +*DocApi* | [**getMemberAwardsDocs**](docs/DocApi.md#getmemberawardsdocs) | **GET** /data/doc/member/awards | +*DocApi* | [**getMemberChartDataDocs**](docs/DocApi.md#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | +*DocApi* | [**getMemberDocs**](docs/DocApi.md#getmemberdocs) | **GET** /data/doc/member | +*DocApi* | [**getMemberGetDocs**](docs/DocApi.md#getmembergetdocs) | **GET** /data/doc/member/get | +*DocApi* | [**getMemberInfoDocs**](docs/DocApi.md#getmemberinfodocs) | **GET** /data/doc/member/info | +*DocApi* | [**getMemberParticipationCreditsDocs**](docs/DocApi.md#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | +*DocApi* | [**getMemberProfileDocs**](docs/DocApi.md#getmemberprofiledocs) | **GET** /data/doc/member/profile | +*DocApi* | [**getResultsDocs**](docs/DocApi.md#getresultsdocs) | **GET** /data/doc/results | +*DocApi* | [**getResultsEventLogDocs**](docs/DocApi.md#getresultseventlogdocs) | **GET** /data/doc/results/event_log | +*DocApi* | [**getResultsGetDocs**](docs/DocApi.md#getresultsgetdocs) | **GET** /data/doc/results/get | +*DocApi* | [**getResultsLapChartDataDocs**](docs/DocApi.md#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | +*DocApi* | [**getResultsLapDataDocs**](docs/DocApi.md#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | +*DocApi* | [**getResultsSearchHostedDocs**](docs/DocApi.md#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | +*DocApi* | [**getResultsSearchSeriesDocs**](docs/DocApi.md#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | +*DocApi* | [**getResultsSeasonResultsDocs**](docs/DocApi.md#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | +*DocApi* | [**getSeasonDocs**](docs/DocApi.md#getseasondocs) | **GET** /data/doc/season | +*DocApi* | [**getSeasonListDocs**](docs/DocApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | +*DocApi* | [**getSeasonRaceGuideDocs**](docs/DocApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | +*DocApi* | [**getSeasonSpectatorSubsessionIdsDetailDocs**](docs/DocApi.md#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | +*DocApi* | [**getSeasonSpectatorSubsessionIdsDocs**](docs/DocApi.md#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | +*DocApi* | [**getSeriesAssetsDocs**](docs/DocApi.md#getseriesassetsdocs) | **GET** /data/doc/series/assets | +*DocApi* | [**getSeriesDocs**](docs/DocApi.md#getseriesdocs) | **GET** /data/doc/series | +*DocApi* | [**getSeriesGetDocs**](docs/DocApi.md#getseriesgetdocs) | **GET** /data/doc/series/get | +*DocApi* | [**getSeriesPastSeasonsDocs**](docs/DocApi.md#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | +*DocApi* | [**getSeriesSeasonListDocs**](docs/DocApi.md#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | +*DocApi* | [**getSeriesSeasonScheduleDocs**](docs/DocApi.md#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | +*DocApi* | [**getSeriesSeasonsDocs**](docs/DocApi.md#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | +*DocApi* | [**getSeriesStatsSeriesDocs**](docs/DocApi.md#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | +*DocApi* | [**getStatsDocs**](docs/DocApi.md#getstatsdocs) | **GET** /data/doc/stats | +*DocApi* | [**getStatsMemberBestsDocs**](docs/DocApi.md#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | +*DocApi* | [**getStatsMemberCareerDocs**](docs/DocApi.md#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | +*DocApi* | [**getStatsMemberDivisionDocs**](docs/DocApi.md#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | +*DocApi* | [**getStatsMemberRecapDocs**](docs/DocApi.md#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | +*DocApi* | [**getStatsMemberRecentRacesDocs**](docs/DocApi.md#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | +*DocApi* | [**getStatsMemberSummaryDocs**](docs/DocApi.md#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | +*DocApi* | [**getStatsMemberYearlyDocs**](docs/DocApi.md#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | +*DocApi* | [**getStatsSeasonDriverStandingsDocs**](docs/DocApi.md#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | +*DocApi* | [**getStatsSeasonQualifyResultsDocs**](docs/DocApi.md#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | +*DocApi* | [**getStatsSeasonSupersessionStandingsDocs**](docs/DocApi.md#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | +*DocApi* | [**getStatsSeasonTTResultsDocs**](docs/DocApi.md#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | +*DocApi* | [**getStatsSeasonTTStandingsDocs**](docs/DocApi.md#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | +*DocApi* | [**getStatsSeasonTeamStandingsDocs**](docs/DocApi.md#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | +*DocApi* | [**getStatsWorldRecordsDocs**](docs/DocApi.md#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | +*DocApi* | [**getTeamDocs**](docs/DocApi.md#getteamdocs) | **GET** /data/doc/team | +*DocApi* | [**getTeamGetDocs**](docs/DocApi.md#getteamgetdocs) | **GET** /data/doc/team/get | +*DocApi* | [**getTeamMembershipDocs**](docs/DocApi.md#getteammembershipdocs) | **GET** /data/doc/team/membership | +*DocApi* | [**getTimeAttackDocs**](docs/DocApi.md#gettimeattackdocs) | **GET** /data/doc/time_attack | +*DocApi* | [**getTimeAttackMemberSeasonResultsDocs**](docs/DocApi.md#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | +*DocApi* | [**getTrackAssetsDocs**](docs/DocApi.md#gettrackassetsdocs) | **GET** /data/doc/track/assets | +*DocApi* | [**getTrackDocs**](docs/DocApi.md#gettrackdocs) | **GET** /data/doc/track | +*DocApi* | [**getTrackGetDocs**](docs/DocApi.md#gettrackgetdocs) | **GET** /data/doc/track/get | +*DriverStatsApi* | [**getDriverStatsByCategory**](docs/DriverStatsApi.md#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | +*HostedApi* | [**getHostedCombinedSessions**](docs/HostedApi.md#gethostedcombinedsessions) | **GET** /data/hosted/combined_sessions | +*HostedApi* | [**getHostedSessions**](docs/HostedApi.md#gethostedsessions) | **GET** /data/hosted/sessions | +*LeagueApi* | [**getLeague**](docs/LeagueApi.md#getleague) | **GET** /data/league/get | +*LeagueApi* | [**getLeagueCustomerLeagueSessions**](docs/LeagueApi.md#getleaguecustomerleaguesessions) | **GET** /data/league/cust_league_sessions | +*LeagueApi* | [**getLeagueDirectory**](docs/LeagueApi.md#getleaguedirectory) | **GET** /data/league/directory | +*LeagueApi* | [**getLeagueMembership**](docs/LeagueApi.md#getleaguemembership) | **GET** /data/league/membership | +*LeagueApi* | [**getLeaguePointsSystems**](docs/LeagueApi.md#getleaguepointssystems) | **GET** /data/league/get_points_systems | +*LeagueApi* | [**getLeagueRoster**](docs/LeagueApi.md#getleagueroster) | **GET** /data/league/roster | +*LeagueApi* | [**getLeagueSeasonSessions**](docs/LeagueApi.md#getleagueseasonsessions) | **GET** /data/league/season_sessions | +*LeagueApi* | [**getLeagueSeasonStandings**](docs/LeagueApi.md#getleagueseasonstandings) | **GET** /data/league/season_standings | +*LeagueApi* | [**getLeagueSeasons**](docs/LeagueApi.md#getleagueseasons) | **GET** /data/league/seasons | +*LookupApi* | [**getLookup**](docs/LookupApi.md#getlookup) | **GET** /data/lookup/get | +*LookupApi* | [**getLookupCountries**](docs/LookupApi.md#getlookupcountries) | **GET** /data/lookup/countries | +*LookupApi* | [**getLookupDrivers**](docs/LookupApi.md#getlookupdrivers) | **GET** /data/lookup/drivers | +*LookupApi* | [**getLookupFlairs**](docs/LookupApi.md#getlookupflairs) | **GET** /data/lookup/flairs | +*LookupApi* | [**getLookupLicenses**](docs/LookupApi.md#getlookuplicenses) | **GET** /data/lookup/licenses | +*MemberApi* | [**getMember**](docs/MemberApi.md#getmember) | **GET** /data/member/get | +*MemberApi* | [**getMemberAwardInstances**](docs/MemberApi.md#getmemberawardinstances) | **GET** /data/member/award_instances | +*MemberApi* | [**getMemberAwards**](docs/MemberApi.md#getmemberawards) | **GET** /data/member/awards | +*MemberApi* | [**getMemberChartData**](docs/MemberApi.md#getmemberchartdata) | **GET** /data/member/chart_data | +*MemberApi* | [**getMemberInfo**](docs/MemberApi.md#getmemberinfo) | **GET** /data/member/info | +*MemberApi* | [**getMemberParticipationCredits**](docs/MemberApi.md#getmemberparticipationcredits) | **GET** /data/member/participation_credits | +*MemberApi* | [**getMemberProfile**](docs/MemberApi.md#getmemberprofile) | **GET** /data/member/profile | Gets a requested user\'s profile. +*ResultsApi* | [**getResults**](docs/ResultsApi.md#getresults) | **GET** /data/results/get | +*ResultsApi* | [**getResultsEventLog**](docs/ResultsApi.md#getresultseventlog) | **GET** /data/results/event_log | +*ResultsApi* | [**getResultsLapChartData**](docs/ResultsApi.md#getresultslapchartdata) | **GET** /data/results/lap_chart_data | +*ResultsApi* | [**getResultsLapData**](docs/ResultsApi.md#getresultslapdata) | **GET** /data/results/lap_data | +*ResultsApi* | [**getResultsSearchHosted**](docs/ResultsApi.md#getresultssearchhosted) | **GET** /data/results/search_hosted | +*ResultsApi* | [**getResultsSearchSeries**](docs/ResultsApi.md#getresultssearchseries) | **GET** /data/results/search_series | +*ResultsApi* | [**getResultsSeasonResults**](docs/ResultsApi.md#getresultsseasonresults) | **GET** /data/results/season_results | +*SeasonApi* | [**getSeasonList**](docs/SeasonApi.md#getseasonlist) | **GET** /data/season/list | +*SeasonApi* | [**getSeasonRaceGuide**](docs/SeasonApi.md#getseasonraceguide) | **GET** /data/season/race_guide | +*SeasonApi* | [**getSeasonSpectatorSubsessionIds**](docs/SeasonApi.md#getseasonspectatorsubsessionids) | **GET** /data/season/spectator_subsessionids | +*SeasonApi* | [**getSeasonSpectatorSubsessionIdsDetail**](docs/SeasonApi.md#getseasonspectatorsubsessionidsdetail) | **GET** /data/season/spectator_subsessionids_detail | +*SeriesApi* | [**getSeries**](docs/SeriesApi.md#getseries) | **GET** /data/series/get | +*SeriesApi* | [**getSeriesAssets**](docs/SeriesApi.md#getseriesassets) | **GET** /data/series/assets | +*SeriesApi* | [**getSeriesPastSeasons**](docs/SeriesApi.md#getseriespastseasons) | **GET** /data/series/past_seasons | +*SeriesApi* | [**getSeriesSeasonList**](docs/SeriesApi.md#getseriesseasonlist) | **GET** /data/series/season_list | +*SeriesApi* | [**getSeriesSeasonSchedule**](docs/SeriesApi.md#getseriesseasonschedule) | **GET** /data/series/season_schedule | +*SeriesApi* | [**getSeriesSeasons**](docs/SeriesApi.md#getseriesseasons) | **GET** /data/series/seasons | +*SeriesApi* | [**getSeriesStatsSeries**](docs/SeriesApi.md#getseriesstatsseries) | **GET** /data/series/stats_series | +*StatsApi* | [**getStatsMemberBests**](docs/StatsApi.md#getstatsmemberbests) | **GET** /data/stats/member_bests | +*StatsApi* | [**getStatsMemberCareer**](docs/StatsApi.md#getstatsmembercareer) | **GET** /data/stats/member_career | +*StatsApi* | [**getStatsMemberDivision**](docs/StatsApi.md#getstatsmemberdivision) | **GET** /data/stats/member_division | +*StatsApi* | [**getStatsMemberRecap**](docs/StatsApi.md#getstatsmemberrecap) | **GET** /data/stats/member_recap | +*StatsApi* | [**getStatsMemberRecentRaces**](docs/StatsApi.md#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | +*StatsApi* | [**getStatsMemberSummary**](docs/StatsApi.md#getstatsmembersummary) | **GET** /data/stats/member_summary | +*StatsApi* | [**getStatsMemberYearly**](docs/StatsApi.md#getstatsmemberyearly) | **GET** /data/stats/member_yearly | +*StatsApi* | [**getStatsSeasonDriverStandings**](docs/StatsApi.md#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | +*StatsApi* | [**getStatsSeasonQualifyResults**](docs/StatsApi.md#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | +*StatsApi* | [**getStatsSeasonSupersessionStandings**](docs/StatsApi.md#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | +*StatsApi* | [**getStatsSeasonTeamStandings**](docs/StatsApi.md#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | +*StatsApi* | [**getStatsSeasonTimeTrialResults**](docs/StatsApi.md#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | +*StatsApi* | [**getStatsSeasonTimeTrialStandings**](docs/StatsApi.md#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | +*StatsApi* | [**getStatsWorldRecords**](docs/StatsApi.md#getstatsworldrecords) | **GET** /data/stats/world_records | +*TeamApi* | [**getTeam**](docs/TeamApi.md#getteam) | **GET** /data/team/get | +*TeamApi* | [**getTeamMembership**](docs/TeamApi.md#getteammembership) | **GET** /data/team/membership | +*TimeAttackApi* | [**getTimeAttackMemberSeasonResults**](docs/TimeAttackApi.md#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | +*TrackApi* | [**getTrack**](docs/TrackApi.md#gettrack) | **GET** /data/track/get | +*TrackApi* | [**getTrackAssets**](docs/TrackApi.md#gettrackassets) | **GET** /data/track/assets | + + +### Models + +- [ErrorResponse](docs/ErrorResponse.md) +- [IracingAPIResponse](docs/IracingAPIResponse.md) +- [IracingCategory](docs/IracingCategory.md) +- [IracingDivision](docs/IracingDivision.md) +- [IracingEventType](docs/IracingEventType.md) +- [IracingServiceMethodDocs](docs/IracingServiceMethodDocs.md) +- [IracingServiceMethodParametersDocs](docs/IracingServiceMethodParametersDocs.md) +- [PostAuthRequest](docs/PostAuthRequest.md) + +### Authorization + + +Authentication schemes defined for the API: + +#### bearerAuth + + +- **Type**: HTTP Bearer Token authentication (JWT) + +#### oAuth2 accessCode + + +- **Type**: OAuth +- **Flow**: accessCode +- **Authorization URL**: https://oauth.iracing.com/oauth2/authorize +- **Scopes**: + - `iracing.auth`: Authorization for iRacing services. + - `iracing.profile`: Access to the iRacing profile. + +## About + +This TypeScript SDK client supports the [Fetch API](https://fetch.spec.whatwg.org/) +and is automatically generated by the +[OpenAPI Generator](https://openapi-generator.tech) project: + +- API version: `0.0.1` +- Package version: `0.0.1` +- Generator version: `7.17.0` +- Build package: `org.openapitools.codegen.languages.TypeScriptFetchClientCodegen` + +The generated npm module supports the following: + +- Environments + * Node.js + * Webpack + * Browserify +- Language levels + * ES5 - you must have a Promises/A+ library installed + * ES6 +- Module systems + * CommonJS + * ES6 module system + + +## Development + +### Building + +To build the TypeScript source code, you need to have Node.js and npm installed. +After cloning the repository, navigate to the project directory and run: + +```bash +npm install +npm run build +``` + +### Publishing + +Once you've built the package, you can publish it to npm: + +```bash +npm publish +``` + +## License + +[]() diff --git a/packages/api/client/fetch/docs/AuthApi.md b/packages/api/client/fetch/docs/AuthApi.md new file mode 100644 index 0000000..77a8472 --- /dev/null +++ b/packages/api/client/fetch/docs/AuthApi.md @@ -0,0 +1,73 @@ +# AuthApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**postAuth**](AuthApi.md#postauthoperation) | **POST** /auth | | + + + +## postAuth + +> postAuth(post_auth_request) + + + +### Example + +```ts +import { + Configuration, + AuthApi, +} from '@iracing-data/api-client-fetch'; +import type { PostAuthOperationRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new AuthApi(config); + + const body = { + // PostAuthRequest (optional) + post_auth_request: ..., + } satisfies PostAuthOperationRequest; + + try { + const data = await api.postAuth(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **post_auth_request** | [PostAuthRequest](PostAuthRequest.md) | | [Optional] | + +### Return type + +`void` (Empty response body) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: `application/json` +- **Accept**: Not defined + + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/CarApi.md b/packages/api/client/fetch/docs/CarApi.md new file mode 100644 index 0000000..964a9a5 --- /dev/null +++ b/packages/api/client/fetch/docs/CarApi.md @@ -0,0 +1,140 @@ +# CarApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getCar**](CarApi.md#getcar) | **GET** /data/car/get | | +| [**getCarAssets**](CarApi.md#getcarassets) | **GET** /data/car/assets | | + + + +## getCar + +> IracingAPIResponse getCar() + + + +### Example + +```ts +import { + Configuration, + CarApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new CarApi(config); + + try { + const data = await api.getCar(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getCarAssets + +> IracingAPIResponse getCarAssets() + + + +image paths are relative to https://images-static.iracing.com/ + +### Example + +```ts +import { + Configuration, + CarApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarAssetsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new CarApi(config); + + try { + const data = await api.getCarAssets(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/CarclassApi.md b/packages/api/client/fetch/docs/CarclassApi.md new file mode 100644 index 0000000..e3271f6 --- /dev/null +++ b/packages/api/client/fetch/docs/CarclassApi.md @@ -0,0 +1,73 @@ +# CarclassApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getCarClass**](CarclassApi.md#getcarclass) | **GET** /data/carclass/get | Gets car classes. | + + + +## getCarClass + +> IracingAPIResponse getCarClass() + +Gets car classes. + +### Example + +```ts +import { + Configuration, + CarclassApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarClassRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new CarclassApi(config); + + try { + const data = await api.getCarClass(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/ConstantsApi.md b/packages/api/client/fetch/docs/ConstantsApi.md new file mode 100644 index 0000000..5712a59 --- /dev/null +++ b/packages/api/client/fetch/docs/ConstantsApi.md @@ -0,0 +1,209 @@ +# ConstantsApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getConstantsCategories**](ConstantsApi.md#getconstantscategories) | **GET** /data/constants/categories | | +| [**getConstantsDivisions**](ConstantsApi.md#getconstantsdivisions) | **GET** /data/constants/divisions | | +| [**getConstantsEventTypes**](ConstantsApi.md#getconstantseventtypes) | **GET** /data/constants/event_types | | + + + +## getConstantsCategories + +> IracingAPIResponse getConstantsCategories() + + + +Constant; returned directly as an array of objects + +### Example + +```ts +import { + Configuration, + ConstantsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetConstantsCategoriesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ConstantsApi(config); + + try { + const data = await api.getConstantsCategories(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getConstantsDivisions + +> IracingAPIResponse getConstantsDivisions() + + + +Constant; returned directly as an array of objects + +### Example + +```ts +import { + Configuration, + ConstantsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetConstantsDivisionsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ConstantsApi(config); + + try { + const data = await api.getConstantsDivisions(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getConstantsEventTypes + +> IracingAPIResponse getConstantsEventTypes() + + + +Constant; returned directly as an array of objects + +### Example + +```ts +import { + Configuration, + ConstantsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetConstantsEventTypesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ConstantsApi(config); + + try { + const data = await api.getConstantsEventTypes(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/DocApi.md b/packages/api/client/fetch/docs/DocApi.md new file mode 100644 index 0000000..cd5f61f --- /dev/null +++ b/packages/api/client/fetch/docs/DocApi.md @@ -0,0 +1,5245 @@ +# DocApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getCarAssetsDocs**](DocApi.md#getcarassetsdocs) | **GET** /data/doc/car/assets | | +| [**getCarClassDocs**](DocApi.md#getcarclassdocs) | **GET** /data/doc/carclass | | +| [**getCarClassGetDocs**](DocApi.md#getcarclassgetdocs) | **GET** /data/doc/carclass/get | | +| [**getCarDocs**](DocApi.md#getcardocs) | **GET** /data/doc/car | | +| [**getCarGetDocs**](DocApi.md#getcargetdocs) | **GET** /data/doc/car/get | | +| [**getConstantsCategoriesDocs**](DocApi.md#getconstantscategoriesdocs) | **GET** /data/doc/constants/categories | | +| [**getConstantsDivisionsDocs**](DocApi.md#getconstantsdivisionsdocs) | **GET** /data/doc/constants/divisions | | +| [**getConstantsDocs**](DocApi.md#getconstantsdocs) | **GET** /data/doc/constants | | +| [**getConstantsEventTypesDocs**](DocApi.md#getconstantseventtypesdocs) | **GET** /data/doc/constants/event_types | | +| [**getDocs**](DocApi.md#getdocs) | **GET** /data/doc | | +| [**getDriverStatsByCategoryCategoryDocs**](DocApi.md#getdriverstatsbycategorycategorydocs) | **GET** /data/doc/driver_stats_by_category/{category} | | +| [**getDriverStatsByCategoryDocs**](DocApi.md#getdriverstatsbycategorydocs) | **GET** /data/doc/driver_stats_by_category | | +| [**getHostedCombinedSessionsDocs**](DocApi.md#gethostedcombinedsessionsdocs) | **GET** /data/doc/hosted/combined_sessions | | +| [**getHostedDocs**](DocApi.md#gethosteddocs) | **GET** /data/doc/hosted | | +| [**getHostedSessionsDocs**](DocApi.md#gethostedsessionsdocs) | **GET** /data/doc/hosted/sessions | | +| [**getLeagueCustomerLeagueSessionsDocs**](DocApi.md#getleaguecustomerleaguesessionsdocs) | **GET** /data/doc/league/cust_league_sessions | | +| [**getLeagueDirectoryDocs**](DocApi.md#getleaguedirectorydocs) | **GET** /data/doc/league/directory | | +| [**getLeagueDocs**](DocApi.md#getleaguedocs) | **GET** /data/doc/league | | +| [**getLeagueGetDocs**](DocApi.md#getleaguegetdocs) | **GET** /data/doc/league/get | | +| [**getLeagueGetPointsSystemsDocs**](DocApi.md#getleaguegetpointssystemsdocs) | **GET** /data/doc/league/get_points_systems | | +| [**getLeagueMembershipDocs**](DocApi.md#getleaguemembershipdocs) | **GET** /data/doc/league/membership | | +| [**getLeagueRosterDocs**](DocApi.md#getleaguerosterdocs) | **GET** /data/doc/league/roster | | +| [**getLeagueSeasonSessionsDocs**](DocApi.md#getleagueseasonsessionsdocs) | **GET** /data/doc/league/season_sessions | | +| [**getLeagueSeasonStandingsDocs**](DocApi.md#getleagueseasonstandingsdocs) | **GET** /data/doc/league/season_standings | | +| [**getLeagueSeasonsDocs**](DocApi.md#getleagueseasonsdocs) | **GET** /data/doc/league/seasons | | +| [**getLookupCountriesDocs**](DocApi.md#getlookupcountriesdocs) | **GET** /data/doc/lookup/countries | | +| [**getLookupDocs**](DocApi.md#getlookupdocs) | **GET** /data/doc/lookup | | +| [**getLookupDriversDocs**](DocApi.md#getlookupdriversdocs) | **GET** /data/doc/lookup/drivers | | +| [**getLookupFlairsDocs**](DocApi.md#getlookupflairsdocs) | **GET** /data/doc/lookup/flairs | | +| [**getLookupGetDocs**](DocApi.md#getlookupgetdocs) | **GET** /data/doc/lookup/get | | +| [**getLookupLicensesDocs**](DocApi.md#getlookuplicensesdocs) | **GET** /data/doc/lookup/licenses | | +| [**getMemberAwardInstancesDocs**](DocApi.md#getmemberawardinstancesdocs) | **GET** /data/doc/member/award_instances | | +| [**getMemberAwardsDocs**](DocApi.md#getmemberawardsdocs) | **GET** /data/doc/member/awards | | +| [**getMemberChartDataDocs**](DocApi.md#getmemberchartdatadocs) | **GET** /data/doc/member/chart_data | | +| [**getMemberDocs**](DocApi.md#getmemberdocs) | **GET** /data/doc/member | | +| [**getMemberGetDocs**](DocApi.md#getmembergetdocs) | **GET** /data/doc/member/get | | +| [**getMemberInfoDocs**](DocApi.md#getmemberinfodocs) | **GET** /data/doc/member/info | | +| [**getMemberParticipationCreditsDocs**](DocApi.md#getmemberparticipationcreditsdocs) | **GET** /data/doc/member/participation_credits | | +| [**getMemberProfileDocs**](DocApi.md#getmemberprofiledocs) | **GET** /data/doc/member/profile | | +| [**getResultsDocs**](DocApi.md#getresultsdocs) | **GET** /data/doc/results | | +| [**getResultsEventLogDocs**](DocApi.md#getresultseventlogdocs) | **GET** /data/doc/results/event_log | | +| [**getResultsGetDocs**](DocApi.md#getresultsgetdocs) | **GET** /data/doc/results/get | | +| [**getResultsLapChartDataDocs**](DocApi.md#getresultslapchartdatadocs) | **GET** /data/doc/results/lap_chart_data | | +| [**getResultsLapDataDocs**](DocApi.md#getresultslapdatadocs) | **GET** /data/doc/results/lap_data | | +| [**getResultsSearchHostedDocs**](DocApi.md#getresultssearchhosteddocs) | **GET** /data/doc/results/search_hosted | | +| [**getResultsSearchSeriesDocs**](DocApi.md#getresultssearchseriesdocs) | **GET** /data/doc/results/search_series | | +| [**getResultsSeasonResultsDocs**](DocApi.md#getresultsseasonresultsdocs) | **GET** /data/doc/results/season_results | | +| [**getSeasonDocs**](DocApi.md#getseasondocs) | **GET** /data/doc/season | | +| [**getSeasonListDocs**](DocApi.md#getseasonlistdocs) | **GET** /data/doc/season/list | | +| [**getSeasonRaceGuideDocs**](DocApi.md#getseasonraceguidedocs) | **GET** /data/doc/season/race_guide | | +| [**getSeasonSpectatorSubsessionIdsDetailDocs**](DocApi.md#getseasonspectatorsubsessionidsdetaildocs) | **GET** /data/doc/season/spectator_subsessionids_detail | | +| [**getSeasonSpectatorSubsessionIdsDocs**](DocApi.md#getseasonspectatorsubsessionidsdocs) | **GET** /data/doc/season/spectator_subsessionids | | +| [**getSeriesAssetsDocs**](DocApi.md#getseriesassetsdocs) | **GET** /data/doc/series/assets | | +| [**getSeriesDocs**](DocApi.md#getseriesdocs) | **GET** /data/doc/series | | +| [**getSeriesGetDocs**](DocApi.md#getseriesgetdocs) | **GET** /data/doc/series/get | | +| [**getSeriesPastSeasonsDocs**](DocApi.md#getseriespastseasonsdocs) | **GET** /data/doc/series/past_seasons | | +| [**getSeriesSeasonListDocs**](DocApi.md#getseriesseasonlistdocs) | **GET** /data/doc/series/season_list | | +| [**getSeriesSeasonScheduleDocs**](DocApi.md#getseriesseasonscheduledocs) | **GET** /data/doc/series/season_schedule | | +| [**getSeriesSeasonsDocs**](DocApi.md#getseriesseasonsdocs) | **GET** /data/doc/series/seasons | | +| [**getSeriesStatsSeriesDocs**](DocApi.md#getseriesstatsseriesdocs) | **GET** /data/doc/series/stats_series | | +| [**getStatsDocs**](DocApi.md#getstatsdocs) | **GET** /data/doc/stats | | +| [**getStatsMemberBestsDocs**](DocApi.md#getstatsmemberbestsdocs) | **GET** /data/doc/stats/member_bests | | +| [**getStatsMemberCareerDocs**](DocApi.md#getstatsmembercareerdocs) | **GET** /data/doc/stats/member_career | | +| [**getStatsMemberDivisionDocs**](DocApi.md#getstatsmemberdivisiondocs) | **GET** /data/doc/stats/member_division | | +| [**getStatsMemberRecapDocs**](DocApi.md#getstatsmemberrecapdocs) | **GET** /data/doc/stats/member_recap | | +| [**getStatsMemberRecentRacesDocs**](DocApi.md#getstatsmemberrecentracesdocs) | **GET** /data/doc/stats/member_recent_races | | +| [**getStatsMemberSummaryDocs**](DocApi.md#getstatsmembersummarydocs) | **GET** /data/doc/stats/member_summary | | +| [**getStatsMemberYearlyDocs**](DocApi.md#getstatsmemberyearlydocs) | **GET** /data/doc/stats/member_yearly | | +| [**getStatsSeasonDriverStandingsDocs**](DocApi.md#getstatsseasondriverstandingsdocs) | **GET** /data/doc/stats/season_driver_standings | | +| [**getStatsSeasonQualifyResultsDocs**](DocApi.md#getstatsseasonqualifyresultsdocs) | **GET** /data/doc/stats/season_qualify_results | | +| [**getStatsSeasonSupersessionStandingsDocs**](DocApi.md#getstatsseasonsupersessionstandingsdocs) | **GET** /data/doc/stats/season_supersession_standings | | +| [**getStatsSeasonTTResultsDocs**](DocApi.md#getstatsseasonttresultsdocs) | **GET** /data/doc/stats/season_tt_results | | +| [**getStatsSeasonTTStandingsDocs**](DocApi.md#getstatsseasonttstandingsdocs) | **GET** /data/doc/stats/season_tt_standings | | +| [**getStatsSeasonTeamStandingsDocs**](DocApi.md#getstatsseasonteamstandingsdocs) | **GET** /data/doc/stats/season_team_standings | | +| [**getStatsWorldRecordsDocs**](DocApi.md#getstatsworldrecordsdocs) | **GET** /data/doc/stats/world_records | | +| [**getTeamDocs**](DocApi.md#getteamdocs) | **GET** /data/doc/team | | +| [**getTeamGetDocs**](DocApi.md#getteamgetdocs) | **GET** /data/doc/team/get | | +| [**getTeamMembershipDocs**](DocApi.md#getteammembershipdocs) | **GET** /data/doc/team/membership | | +| [**getTimeAttackDocs**](DocApi.md#gettimeattackdocs) | **GET** /data/doc/time_attack | | +| [**getTimeAttackMemberSeasonResultsDocs**](DocApi.md#gettimeattackmemberseasonresultsdocs) | **GET** /data/doc/time_attack/member_season_results | | +| [**getTrackAssetsDocs**](DocApi.md#gettrackassetsdocs) | **GET** /data/doc/track/assets | | +| [**getTrackDocs**](DocApi.md#gettrackdocs) | **GET** /data/doc/track | | +| [**getTrackGetDocs**](DocApi.md#gettrackgetdocs) | **GET** /data/doc/track/get | | + + + +## getCarAssetsDocs + +> IracingServiceMethodDocs getCarAssetsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarAssetsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getCarAssetsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getCarClassDocs + +> { [key: string]: IracingServiceMethodDocs; } getCarClassDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarClassDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getCarClassDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getCarClassGetDocs + +> IracingServiceMethodDocs getCarClassGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarClassGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getCarClassGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getCarDocs + +> { [key: string]: IracingServiceMethodDocs; } getCarDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getCarDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getCarGetDocs + +> IracingServiceMethodDocs getCarGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetCarGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getCarGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getConstantsCategoriesDocs + +> IracingServiceMethodDocs getConstantsCategoriesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetConstantsCategoriesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getConstantsCategoriesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getConstantsDivisionsDocs + +> IracingServiceMethodDocs getConstantsDivisionsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetConstantsDivisionsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getConstantsDivisionsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getConstantsDocs + +> { [key: string]: IracingServiceMethodDocs; } getConstantsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetConstantsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getConstantsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getConstantsEventTypesDocs + +> IracingServiceMethodDocs getConstantsEventTypesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetConstantsEventTypesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getConstantsEventTypesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getDocs + +> { [key: string]: { [key: string]: IracingServiceMethodDocs; }; } getDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +**{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }** + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getDriverStatsByCategoryCategoryDocs + +> IracingServiceMethodDocs getDriverStatsByCategoryCategoryDocs(category) + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetDriverStatsByCategoryCategoryDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + const body = { + // IracingCategory | Racing category. + category: ..., + } satisfies GetDriverStatsByCategoryCategoryDocsRequest; + + try { + const data = await api.getDriverStatsByCategoryCategoryDocs(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **category** | `IracingCategory` | Racing category. | [Defaults to `undefined`] [Enum: oval, road, dirt_road, dirt_oval, sports_car, formula_car] | + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getDriverStatsByCategoryDocs + +> { [key: string]: IracingServiceMethodDocs; } getDriverStatsByCategoryDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetDriverStatsByCategoryDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getDriverStatsByCategoryDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getHostedCombinedSessionsDocs + +> IracingServiceMethodDocs getHostedCombinedSessionsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetHostedCombinedSessionsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getHostedCombinedSessionsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getHostedDocs + +> { [key: string]: IracingServiceMethodDocs; } getHostedDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetHostedDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getHostedDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getHostedSessionsDocs + +> IracingServiceMethodDocs getHostedSessionsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetHostedSessionsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getHostedSessionsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueCustomerLeagueSessionsDocs + +> IracingServiceMethodDocs getLeagueCustomerLeagueSessionsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueCustomerLeagueSessionsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueCustomerLeagueSessionsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueDirectoryDocs + +> IracingServiceMethodDocs getLeagueDirectoryDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueDirectoryDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueDirectoryDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueDocs + +> { [key: string]: IracingServiceMethodDocs; } getLeagueDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueGetDocs + +> IracingServiceMethodDocs getLeagueGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueGetPointsSystemsDocs + +> IracingServiceMethodDocs getLeagueGetPointsSystemsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueGetPointsSystemsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueGetPointsSystemsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueMembershipDocs + +> IracingServiceMethodDocs getLeagueMembershipDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueMembershipDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueMembershipDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueRosterDocs + +> IracingServiceMethodDocs getLeagueRosterDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueRosterDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueRosterDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueSeasonSessionsDocs + +> IracingServiceMethodDocs getLeagueSeasonSessionsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueSeasonSessionsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueSeasonSessionsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueSeasonStandingsDocs + +> IracingServiceMethodDocs getLeagueSeasonStandingsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueSeasonStandingsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueSeasonStandingsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueSeasonsDocs + +> IracingServiceMethodDocs getLeagueSeasonsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueSeasonsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLeagueSeasonsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupCountriesDocs + +> IracingServiceMethodDocs getLookupCountriesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupCountriesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLookupCountriesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupDocs + +> { [key: string]: IracingServiceMethodDocs; } getLookupDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLookupDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupDriversDocs + +> IracingServiceMethodDocs getLookupDriversDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupDriversDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLookupDriversDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupFlairsDocs + +> IracingServiceMethodDocs getLookupFlairsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupFlairsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLookupFlairsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupGetDocs + +> IracingServiceMethodDocs getLookupGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLookupGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupLicensesDocs + +> IracingServiceMethodDocs getLookupLicensesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupLicensesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getLookupLicensesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberAwardInstancesDocs + +> IracingServiceMethodDocs getMemberAwardInstancesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberAwardInstancesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberAwardInstancesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberAwardsDocs + +> IracingServiceMethodDocs getMemberAwardsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberAwardsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberAwardsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberChartDataDocs + +> IracingServiceMethodDocs getMemberChartDataDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberChartDataDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberChartDataDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberDocs + +> { [key: string]: IracingServiceMethodDocs; } getMemberDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberGetDocs + +> IracingServiceMethodDocs getMemberGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberInfoDocs + +> IracingServiceMethodDocs getMemberInfoDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberInfoDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberInfoDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberParticipationCreditsDocs + +> IracingServiceMethodDocs getMemberParticipationCreditsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberParticipationCreditsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberParticipationCreditsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberProfileDocs + +> IracingServiceMethodDocs getMemberProfileDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberProfileDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getMemberProfileDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsDocs + +> { [key: string]: IracingServiceMethodDocs; } getResultsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsEventLogDocs + +> IracingServiceMethodDocs getResultsEventLogDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsEventLogDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsEventLogDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsGetDocs + +> IracingServiceMethodDocs getResultsGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsLapChartDataDocs + +> IracingServiceMethodDocs getResultsLapChartDataDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsLapChartDataDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsLapChartDataDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsLapDataDocs + +> IracingServiceMethodDocs getResultsLapDataDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsLapDataDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsLapDataDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsSearchHostedDocs + +> IracingServiceMethodDocs getResultsSearchHostedDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsSearchHostedDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsSearchHostedDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsSearchSeriesDocs + +> IracingServiceMethodDocs getResultsSearchSeriesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsSearchSeriesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsSearchSeriesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsSeasonResultsDocs + +> IracingServiceMethodDocs getResultsSeasonResultsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsSeasonResultsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getResultsSeasonResultsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonDocs + +> { [key: string]: IracingServiceMethodDocs; } getSeasonDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeasonDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonListDocs + +> IracingServiceMethodDocs getSeasonListDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonListDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeasonListDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonRaceGuideDocs + +> IracingServiceMethodDocs getSeasonRaceGuideDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonRaceGuideDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeasonRaceGuideDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonSpectatorSubsessionIdsDetailDocs + +> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDetailDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonSpectatorSubsessionIdsDetailDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeasonSpectatorSubsessionIdsDetailDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonSpectatorSubsessionIdsDocs + +> IracingServiceMethodDocs getSeasonSpectatorSubsessionIdsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonSpectatorSubsessionIdsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeasonSpectatorSubsessionIdsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesAssetsDocs + +> IracingServiceMethodDocs getSeriesAssetsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesAssetsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesAssetsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesDocs + +> { [key: string]: IracingServiceMethodDocs; } getSeriesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesGetDocs + +> IracingServiceMethodDocs getSeriesGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesPastSeasonsDocs + +> IracingServiceMethodDocs getSeriesPastSeasonsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesPastSeasonsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesPastSeasonsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesSeasonListDocs + +> IracingServiceMethodDocs getSeriesSeasonListDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesSeasonListDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesSeasonListDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesSeasonScheduleDocs + +> IracingServiceMethodDocs getSeriesSeasonScheduleDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesSeasonScheduleDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesSeasonScheduleDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesSeasonsDocs + +> IracingServiceMethodDocs getSeriesSeasonsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesSeasonsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesSeasonsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesStatsSeriesDocs + +> IracingServiceMethodDocs getSeriesStatsSeriesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesStatsSeriesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getSeriesStatsSeriesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsDocs + +> { [key: string]: IracingServiceMethodDocs; } getStatsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberBestsDocs + +> IracingServiceMethodDocs getStatsMemberBestsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberBestsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsMemberBestsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberCareerDocs + +> IracingServiceMethodDocs getStatsMemberCareerDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberCareerDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsMemberCareerDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberDivisionDocs + +> IracingServiceMethodDocs getStatsMemberDivisionDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberDivisionDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsMemberDivisionDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberRecapDocs + +> IracingServiceMethodDocs getStatsMemberRecapDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberRecapDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsMemberRecapDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberRecentRacesDocs + +> IracingServiceMethodDocs getStatsMemberRecentRacesDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberRecentRacesDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsMemberRecentRacesDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberSummaryDocs + +> IracingServiceMethodDocs getStatsMemberSummaryDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberSummaryDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsMemberSummaryDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberYearlyDocs + +> IracingServiceMethodDocs getStatsMemberYearlyDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberYearlyDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsMemberYearlyDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonDriverStandingsDocs + +> IracingServiceMethodDocs getStatsSeasonDriverStandingsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonDriverStandingsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsSeasonDriverStandingsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonQualifyResultsDocs + +> IracingServiceMethodDocs getStatsSeasonQualifyResultsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonQualifyResultsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsSeasonQualifyResultsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonSupersessionStandingsDocs + +> IracingServiceMethodDocs getStatsSeasonSupersessionStandingsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonSupersessionStandingsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsSeasonSupersessionStandingsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonTTResultsDocs + +> IracingServiceMethodDocs getStatsSeasonTTResultsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonTTResultsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsSeasonTTResultsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonTTStandingsDocs + +> IracingServiceMethodDocs getStatsSeasonTTStandingsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonTTStandingsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsSeasonTTStandingsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonTeamStandingsDocs + +> IracingServiceMethodDocs getStatsSeasonTeamStandingsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonTeamStandingsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsSeasonTeamStandingsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsWorldRecordsDocs + +> IracingServiceMethodDocs getStatsWorldRecordsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsWorldRecordsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getStatsWorldRecordsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTeamDocs + +> { [key: string]: IracingServiceMethodDocs; } getTeamDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTeamDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTeamDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTeamGetDocs + +> IracingServiceMethodDocs getTeamGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTeamGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTeamGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTeamMembershipDocs + +> IracingServiceMethodDocs getTeamMembershipDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTeamMembershipDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTeamMembershipDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTimeAttackDocs + +> { [key: string]: IracingServiceMethodDocs; } getTimeAttackDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTimeAttackDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTimeAttackDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTimeAttackMemberSeasonResultsDocs + +> IracingServiceMethodDocs getTimeAttackMemberSeasonResultsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTimeAttackMemberSeasonResultsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTimeAttackMemberSeasonResultsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTrackAssetsDocs + +> IracingServiceMethodDocs getTrackAssetsDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTrackAssetsDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTrackAssetsDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTrackDocs + +> { [key: string]: IracingServiceMethodDocs; } getTrackDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTrackDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTrackDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**{ [key: string]: IracingServiceMethodDocs; }**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTrackGetDocs + +> IracingServiceMethodDocs getTrackGetDocs() + + + +### Example + +```ts +import { + Configuration, + DocApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTrackGetDocsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DocApi(config); + + try { + const data = await api.getTrackGetDocs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingServiceMethodDocs**](IracingServiceMethodDocs.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | - | +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/DriverStatsApi.md b/packages/api/client/fetch/docs/DriverStatsApi.md new file mode 100644 index 0000000..35d7305 --- /dev/null +++ b/packages/api/client/fetch/docs/DriverStatsApi.md @@ -0,0 +1,81 @@ +# DriverStatsApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getDriverStatsByCategory**](DriverStatsApi.md#getdriverstatsbycategory) | **GET** /data/driver_stats_by_category/{category} | | + + + +## getDriverStatsByCategory + +> IracingAPIResponse getDriverStatsByCategory(category) + + + +### Example + +```ts +import { + Configuration, + DriverStatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetDriverStatsByCategoryRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DriverStatsApi(config); + + const body = { + // IracingCategory | Racing category. + category: ..., + } satisfies GetDriverStatsByCategoryRequest; + + try { + const data = await api.getDriverStatsByCategory(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **category** | `IracingCategory` | Racing category. | [Defaults to `undefined`] [Enum: oval, road, dirt_road, dirt_oval, sports_car, formula_car] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/ErrorResponse.md b/packages/api/client/fetch/docs/ErrorResponse.md new file mode 100644 index 0000000..9536871 --- /dev/null +++ b/packages/api/client/fetch/docs/ErrorResponse.md @@ -0,0 +1,38 @@ + +# ErrorResponse + + +## Properties + +Name | Type +------------ | ------------- +`error` | string +`message` | string +`note` | string + +## Example + +```typescript +import type { ErrorResponse } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { + "error": null, + "message": null, + "note": null, +} satisfies ErrorResponse + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as ErrorResponse +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/HostedApi.md b/packages/api/client/fetch/docs/HostedApi.md new file mode 100644 index 0000000..9179647 --- /dev/null +++ b/packages/api/client/fetch/docs/HostedApi.md @@ -0,0 +1,150 @@ +# HostedApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getHostedCombinedSessions**](HostedApi.md#gethostedcombinedsessions) | **GET** /data/hosted/combined_sessions | | +| [**getHostedSessions**](HostedApi.md#gethostedsessions) | **GET** /data/hosted/sessions | | + + + +## getHostedCombinedSessions + +> IracingAPIResponse getHostedCombinedSessions(package_id) + + + +Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + +### Example + +```ts +import { + Configuration, + HostedApi, +} from '@iracing-data/api-client-fetch'; +import type { GetHostedCombinedSessionsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new HostedApi(config); + + const body = { + // number | If set, return only sessions using this car or track package ID. (optional) + package_id: 8.14, + } satisfies GetHostedCombinedSessionsRequest; + + try { + const data = await api.getHostedCombinedSessions(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **package_id** | `number` | If set, return only sessions using this car or track package ID. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getHostedSessions + +> IracingAPIResponse getHostedSessions() + + + +Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + +### Example + +```ts +import { + Configuration, + HostedApi, +} from '@iracing-data/api-client-fetch'; +import type { GetHostedSessionsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new HostedApi(config); + + try { + const data = await api.getHostedSessions(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/IracingAPIResponse.md b/packages/api/client/fetch/docs/IracingAPIResponse.md new file mode 100644 index 0000000..e8c51e9 --- /dev/null +++ b/packages/api/client/fetch/docs/IracingAPIResponse.md @@ -0,0 +1,37 @@ + +# IracingAPIResponse + +Response from iRacing `/data` API. + +## Properties + +Name | Type +------------ | ------------- +`link` | string +`expires` | Date + +## Example + +```typescript +import type { IracingAPIResponse } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { + "link": null, + "expires": null, +} satisfies IracingAPIResponse + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as IracingAPIResponse +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/IracingCategory.md b/packages/api/client/fetch/docs/IracingCategory.md new file mode 100644 index 0000000..8e9fcc0 --- /dev/null +++ b/packages/api/client/fetch/docs/IracingCategory.md @@ -0,0 +1,33 @@ + +# IracingCategory + +Racing category. + +## Properties + +Name | Type +------------ | ------------- + +## Example + +```typescript +import type { IracingCategory } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { +} satisfies IracingCategory + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as IracingCategory +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/IracingDivision.md b/packages/api/client/fetch/docs/IracingDivision.md new file mode 100644 index 0000000..516d298 --- /dev/null +++ b/packages/api/client/fetch/docs/IracingDivision.md @@ -0,0 +1,33 @@ + +# IracingDivision + +iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. + +## Properties + +Name | Type +------------ | ------------- + +## Example + +```typescript +import type { IracingDivision } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { +} satisfies IracingDivision + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as IracingDivision +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/IracingEventType.md b/packages/api/client/fetch/docs/IracingEventType.md new file mode 100644 index 0000000..7396a3f --- /dev/null +++ b/packages/api/client/fetch/docs/IracingEventType.md @@ -0,0 +1,33 @@ + +# IracingEventType + +iRacing Event Type + +## Properties + +Name | Type +------------ | ------------- + +## Example + +```typescript +import type { IracingEventType } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { +} satisfies IracingEventType + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as IracingEventType +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/IracingServiceMethodDocs.md b/packages/api/client/fetch/docs/IracingServiceMethodDocs.md new file mode 100644 index 0000000..ec02638 --- /dev/null +++ b/packages/api/client/fetch/docs/IracingServiceMethodDocs.md @@ -0,0 +1,39 @@ + +# IracingServiceMethodDocs + +An iRacing API Service Method object. + +## Properties + +Name | Type +------------ | ------------- +`link` | string +`parameters` | [{ [key: string]: IracingServiceMethodParametersDocs; }](IracingServiceMethodParametersDocs.md) +`expirationSeconds` | number + +## Example + +```typescript +import type { IracingServiceMethodDocs } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { + "link": null, + "parameters": null, + "expirationSeconds": null, +} satisfies IracingServiceMethodDocs + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as IracingServiceMethodDocs +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/IracingServiceMethodParametersDocs.md b/packages/api/client/fetch/docs/IracingServiceMethodParametersDocs.md new file mode 100644 index 0000000..63bc903 --- /dev/null +++ b/packages/api/client/fetch/docs/IracingServiceMethodParametersDocs.md @@ -0,0 +1,39 @@ + +# IracingServiceMethodParametersDocs + +An iRacing API Service Method Parameters object. + +## Properties + +Name | Type +------------ | ------------- +`type` | string +`note` | string +`required` | boolean + +## Example + +```typescript +import type { IracingServiceMethodParametersDocs } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { + "type": null, + "note": null, + "required": null, +} satisfies IracingServiceMethodParametersDocs + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as IracingServiceMethodParametersDocs +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/LeagueApi.md b/packages/api/client/fetch/docs/LeagueApi.md new file mode 100644 index 0000000..be1a4ea --- /dev/null +++ b/packages/api/client/fetch/docs/LeagueApi.md @@ -0,0 +1,731 @@ +# LeagueApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getLeague**](LeagueApi.md#getleague) | **GET** /data/league/get | | +| [**getLeagueCustomerLeagueSessions**](LeagueApi.md#getleaguecustomerleaguesessions) | **GET** /data/league/cust_league_sessions | | +| [**getLeagueDirectory**](LeagueApi.md#getleaguedirectory) | **GET** /data/league/directory | | +| [**getLeagueMembership**](LeagueApi.md#getleaguemembership) | **GET** /data/league/membership | | +| [**getLeaguePointsSystems**](LeagueApi.md#getleaguepointssystems) | **GET** /data/league/get_points_systems | | +| [**getLeagueRoster**](LeagueApi.md#getleagueroster) | **GET** /data/league/roster | | +| [**getLeagueSeasonSessions**](LeagueApi.md#getleagueseasonsessions) | **GET** /data/league/season_sessions | | +| [**getLeagueSeasonStandings**](LeagueApi.md#getleagueseasonstandings) | **GET** /data/league/season_standings | | +| [**getLeagueSeasons**](LeagueApi.md#getleagueseasons) | **GET** /data/league/seasons | | + + + +## getLeague + +> IracingAPIResponse getLeague(league_id, include_licenses) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // number + league_id: 8.14, + // boolean | For faster responses, only request when necessary. (optional) + include_licenses: true, + } satisfies GetLeagueRequest; + + try { + const data = await api.getLeague(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **league_id** | `number` | | [Defaults to `undefined`] | +| **include_licenses** | `boolean` | For faster responses, only request when necessary. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueCustomerLeagueSessions + +> IracingAPIResponse getLeagueCustomerLeagueSessions(mine, package_id) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueCustomerLeagueSessionsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // boolean | If true, return only sessions created by this user. (optional) + mine: true, + // number | If set, return only sessions using this car or track package ID. (optional) + package_id: 8.14, + } satisfies GetLeagueCustomerLeagueSessionsRequest; + + try { + const data = await api.getLeagueCustomerLeagueSessions(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **mine** | `boolean` | If true, return only sessions created by this user. | [Optional] [Defaults to `undefined`] | +| **package_id** | `number` | If set, return only sessions using this car or track package ID. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueDirectory + +> IracingAPIResponse getLeagueDirectory(search, tag, restrict_to_member, restrict_to_recruiting, restrict_to_friends, restrict_to_watched, minimum_roster_count, maximum_roster_count, lowerbound, upperbound, sort, order) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueDirectoryRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // string | Will search against league name, description, owner, and league ID. (optional) + search: search_example, + // string | One or more tags, comma-separated. (optional) + tag: tag_example, + // boolean | If true include only leagues for which customer is a member. (optional) + restrict_to_member: true, + // boolean | If true include only leagues which are recruiting. (optional) + restrict_to_recruiting: true, + // boolean | If true include only leagues owned by a friend. (optional) + restrict_to_friends: true, + // boolean | If true include only leagues owned by a watched member. (optional) + restrict_to_watched: true, + // number | If set include leagues with at least this number of members. (optional) + minimum_roster_count: 8.14, + // number | If set include leagues with no more than this number of members. (optional) + maximum_roster_count: 8.14, + // number | First row of results to return. Defaults to 1. (optional) + lowerbound: 8.14, + // number | Last row of results to return. Defaults to lowerbound + 39. (optional) + upperbound: 8.14, + // string | One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. (optional) + sort: sort_example, + // string | One of asc or desc. Defaults to asc. (optional) + order: order_example, + } satisfies GetLeagueDirectoryRequest; + + try { + const data = await api.getLeagueDirectory(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **search** | `string` | Will search against league name, description, owner, and league ID. | [Optional] [Defaults to `undefined`] | +| **tag** | `string` | One or more tags, comma-separated. | [Optional] [Defaults to `undefined`] | +| **restrict_to_member** | `boolean` | If true include only leagues for which customer is a member. | [Optional] [Defaults to `undefined`] | +| **restrict_to_recruiting** | `boolean` | If true include only leagues which are recruiting. | [Optional] [Defaults to `undefined`] | +| **restrict_to_friends** | `boolean` | If true include only leagues owned by a friend. | [Optional] [Defaults to `undefined`] | +| **restrict_to_watched** | `boolean` | If true include only leagues owned by a watched member. | [Optional] [Defaults to `undefined`] | +| **minimum_roster_count** | `number` | If set include leagues with at least this number of members. | [Optional] [Defaults to `undefined`] | +| **maximum_roster_count** | `number` | If set include leagues with no more than this number of members. | [Optional] [Defaults to `undefined`] | +| **lowerbound** | `number` | First row of results to return. Defaults to 1. | [Optional] [Defaults to `undefined`] | +| **upperbound** | `number` | Last row of results to return. Defaults to lowerbound + 39. | [Optional] [Defaults to `undefined`] | +| **sort** | `string` | One of relevance, leaguename, displayname, rostercount. displayname is owners\'s name. Defaults to relevance. | [Optional] [Defaults to `undefined`] | +| **order** | `string` | One of asc or desc. Defaults to asc. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueMembership + +> IracingAPIResponse getLeagueMembership(cust_id, include_league) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueMembershipRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // number | If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. (optional) + cust_id: 8.14, + // boolean (optional) + include_league: true, + } satisfies GetLeagueMembershipRequest; + + try { + const data = await api.getLeagueMembership(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer\'s block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. | [Optional] [Defaults to `undefined`] | +| **include_league** | `boolean` | | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeaguePointsSystems + +> IracingAPIResponse getLeaguePointsSystems(league_id, season_id) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeaguePointsSystemsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // number + league_id: 8.14, + // number | If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. (optional) + season_id: 8.14, + } satisfies GetLeaguePointsSystemsRequest; + + try { + const data = await api.getLeaguePointsSystems(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **league_id** | `number` | | [Defaults to `undefined`] | +| **season_id** | `number` | If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueRoster + +> IracingAPIResponse getLeagueRoster(league_id, include_licenses) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueRosterRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // number + league_id: 8.14, + // boolean | For faster responses, only request when necessary. (optional) + include_licenses: true, + } satisfies GetLeagueRosterRequest; + + try { + const data = await api.getLeagueRoster(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **league_id** | `number` | | [Defaults to `undefined`] | +| **include_licenses** | `boolean` | For faster responses, only request when necessary. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueSeasonSessions + +> IracingAPIResponse getLeagueSeasonSessions(league_id, season_id, results_only) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueSeasonSessionsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // number + league_id: 8.14, + // number + season_id: 8.14, + // boolean | If true include only sessions for which results are available. (optional) + results_only: true, + } satisfies GetLeagueSeasonSessionsRequest; + + try { + const data = await api.getLeagueSeasonSessions(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **league_id** | `number` | | [Defaults to `undefined`] | +| **season_id** | `number` | | [Defaults to `undefined`] | +| **results_only** | `boolean` | If true include only sessions for which results are available. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueSeasonStandings + +> IracingAPIResponse getLeagueSeasonStandings(league_id, season_id, car_class_id, car_id) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueSeasonStandingsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // number + league_id: 8.14, + // number + season_id: 8.14, + // number (optional) + car_class_id: 8.14, + // number | If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. (optional) + car_id: 8.14, + } satisfies GetLeagueSeasonStandingsRequest; + + try { + const data = await api.getLeagueSeasonStandings(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **league_id** | `number` | | [Defaults to `undefined`] | +| **season_id** | `number` | | [Defaults to `undefined`] | +| **car_class_id** | `number` | | [Optional] [Defaults to `undefined`] | +| **car_id** | `number` | If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLeagueSeasons + +> IracingAPIResponse getLeagueSeasons(league_id, retired) + + + +### Example + +```ts +import { + Configuration, + LeagueApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLeagueSeasonsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LeagueApi(config); + + const body = { + // number + league_id: 8.14, + // boolean | If true include seasons which are no longer active. (optional) + retired: true, + } satisfies GetLeagueSeasonsRequest; + + try { + const data = await api.getLeagueSeasons(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **league_id** | `number` | | [Defaults to `undefined`] | +| **retired** | `boolean` | If true include seasons which are no longer active. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/LookupApi.md b/packages/api/client/fetch/docs/LookupApi.md new file mode 100644 index 0000000..19fb130 --- /dev/null +++ b/packages/api/client/fetch/docs/LookupApi.md @@ -0,0 +1,344 @@ +# LookupApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getLookup**](LookupApi.md#getlookup) | **GET** /data/lookup/get | | +| [**getLookupCountries**](LookupApi.md#getlookupcountries) | **GET** /data/lookup/countries | | +| [**getLookupDrivers**](LookupApi.md#getlookupdrivers) | **GET** /data/lookup/drivers | | +| [**getLookupFlairs**](LookupApi.md#getlookupflairs) | **GET** /data/lookup/flairs | | +| [**getLookupLicenses**](LookupApi.md#getlookuplicenses) | **GET** /data/lookup/licenses | | + + + +## getLookup + +> IracingAPIResponse getLookup() + + + +### Example + +```ts +import { + Configuration, + LookupApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LookupApi(config); + + try { + const data = await api.getLookup(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupCountries + +> IracingAPIResponse getLookupCountries() + + + +### Example + +```ts +import { + Configuration, + LookupApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupCountriesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LookupApi(config); + + try { + const data = await api.getLookupCountries(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupDrivers + +> IracingAPIResponse getLookupDrivers(search_term, league_id) + + + +### Example + +```ts +import { + Configuration, + LookupApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupDriversRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LookupApi(config); + + const body = { + // string | A cust_id or partial name for which to search. + search_term: search_term_example, + // number | Narrow the search to the roster of the given league. (optional) + league_id: 8.14, + } satisfies GetLookupDriversRequest; + + try { + const data = await api.getLookupDrivers(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **search_term** | `string` | A cust_id or partial name for which to search. | [Defaults to `undefined`] | +| **league_id** | `number` | Narrow the search to the roster of the given league. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupFlairs + +> IracingAPIResponse getLookupFlairs() + + + +### Example + +```ts +import { + Configuration, + LookupApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupFlairsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LookupApi(config); + + try { + const data = await api.getLookupFlairs(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getLookupLicenses + +> IracingAPIResponse getLookupLicenses() + + + +### Example + +```ts +import { + Configuration, + LookupApi, +} from '@iracing-data/api-client-fetch'; +import type { GetLookupLicensesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new LookupApi(config); + + try { + const data = await api.getLookupLicenses(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/MemberApi.md b/packages/api/client/fetch/docs/MemberApi.md new file mode 100644 index 0000000..839ce0d --- /dev/null +++ b/packages/api/client/fetch/docs/MemberApi.md @@ -0,0 +1,515 @@ +# MemberApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getMember**](MemberApi.md#getmember) | **GET** /data/member/get | | +| [**getMemberAwardInstances**](MemberApi.md#getmemberawardinstances) | **GET** /data/member/award_instances | | +| [**getMemberAwards**](MemberApi.md#getmemberawards) | **GET** /data/member/awards | | +| [**getMemberChartData**](MemberApi.md#getmemberchartdata) | **GET** /data/member/chart_data | | +| [**getMemberInfo**](MemberApi.md#getmemberinfo) | **GET** /data/member/info | | +| [**getMemberParticipationCredits**](MemberApi.md#getmemberparticipationcredits) | **GET** /data/member/participation_credits | | +| [**getMemberProfile**](MemberApi.md#getmemberprofile) | **GET** /data/member/profile | Gets a requested user\'s profile. | + + + +## getMember + +> IracingAPIResponse getMember(cust_ids, include_licenses) + + + +### Example + +```ts +import { + Configuration, + MemberApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new MemberApi(config); + + const body = { + // string | Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 + cust_ids: cust_ids_example, + // boolean (optional) + include_licenses: true, + } satisfies GetMemberRequest; + + try { + const data = await api.getMember(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_ids** | `string` | Comma-separated list of customer IDs. Example: ?cust_ids=2,3,4 | [Defaults to `undefined`] | +| **include_licenses** | `boolean` | | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberAwardInstances + +> IracingAPIResponse getMemberAwardInstances(award_id, cust_id) + + + +### Example + +```ts +import { + Configuration, + MemberApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberAwardInstancesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new MemberApi(config); + + const body = { + // number + award_id: 8.14, + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetMemberAwardInstancesRequest; + + try { + const data = await api.getMemberAwardInstances(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **award_id** | `number` | | [Defaults to `undefined`] | +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberAwards + +> IracingAPIResponse getMemberAwards(cust_id) + + + +### Example + +```ts +import { + Configuration, + MemberApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberAwardsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new MemberApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetMemberAwardsRequest; + + try { + const data = await api.getMemberAwards(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberChartData + +> IracingAPIResponse getMemberChartData(category_id, chart_type, cust_id) + + + +### Example + +```ts +import { + Configuration, + MemberApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberChartDataRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new MemberApi(config); + + const body = { + // number | 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road + category_id: 8.14, + // number | 1 - iRating; 2 - TT Rating; 3 - License/SR + chart_type: 8.14, + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetMemberChartDataRequest; + + try { + const data = await api.getMemberChartData(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **category_id** | `number` | 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road | [Defaults to `undefined`] | +| **chart_type** | `number` | 1 - iRating; 2 - TT Rating; 3 - License/SR | [Defaults to `undefined`] | +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberInfo + +> IracingAPIResponse getMemberInfo() + + + +### Example + +```ts +import { + Configuration, + MemberApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberInfoRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new MemberApi(config); + + try { + const data = await api.getMemberInfo(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberParticipationCredits + +> IracingAPIResponse getMemberParticipationCredits() + + + +### Example + +```ts +import { + Configuration, + MemberApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberParticipationCreditsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new MemberApi(config); + + try { + const data = await api.getMemberParticipationCredits(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getMemberProfile + +> IracingAPIResponse getMemberProfile(cust_id) + +Gets a requested user\'s profile. + +### Example + +```ts +import { + Configuration, + MemberApi, +} from '@iracing-data/api-client-fetch'; +import type { GetMemberProfileRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new MemberApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetMemberProfileRequest; + + try { + const data = await api.getMemberProfile(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/PostAuthRequest.md b/packages/api/client/fetch/docs/PostAuthRequest.md new file mode 100644 index 0000000..c92ce00 --- /dev/null +++ b/packages/api/client/fetch/docs/PostAuthRequest.md @@ -0,0 +1,36 @@ + +# PostAuthRequest + + +## Properties + +Name | Type +------------ | ------------- +`email` | string +`password` | string + +## Example + +```typescript +import type { PostAuthRequest } from '@iracing-data/api-client-fetch' + +// TODO: Update the object below with actual values +const example = { + "email": null, + "password": null, +} satisfies PostAuthRequest + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as PostAuthRequest +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/api/client/fetch/docs/ResultsApi.md b/packages/api/client/fetch/docs/ResultsApi.md new file mode 100644 index 0000000..32c5ad3 --- /dev/null +++ b/packages/api/client/fetch/docs/ResultsApi.md @@ -0,0 +1,615 @@ +# ResultsApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getResults**](ResultsApi.md#getresults) | **GET** /data/results/get | | +| [**getResultsEventLog**](ResultsApi.md#getresultseventlog) | **GET** /data/results/event_log | | +| [**getResultsLapChartData**](ResultsApi.md#getresultslapchartdata) | **GET** /data/results/lap_chart_data | | +| [**getResultsLapData**](ResultsApi.md#getresultslapdata) | **GET** /data/results/lap_data | | +| [**getResultsSearchHosted**](ResultsApi.md#getresultssearchhosted) | **GET** /data/results/search_hosted | | +| [**getResultsSearchSeries**](ResultsApi.md#getresultssearchseries) | **GET** /data/results/search_series | | +| [**getResultsSeasonResults**](ResultsApi.md#getresultsseasonresults) | **GET** /data/results/season_results | | + + + +## getResults + +> IracingAPIResponse getResults(subsession_id, include_licenses) + + + +### Example + +```ts +import { + Configuration, + ResultsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ResultsApi(config); + + const body = { + // number + subsession_id: 8.14, + // boolean (optional) + include_licenses: true, + } satisfies GetResultsRequest; + + try { + const data = await api.getResults(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | `number` | | [Defaults to `undefined`] | +| **include_licenses** | `boolean` | | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsEventLog + +> IracingAPIResponse getResultsEventLog(subsession_id, simsession_number) + + + +### Example + +```ts +import { + Configuration, + ResultsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsEventLogRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ResultsApi(config); + + const body = { + // number + subsession_id: 8.14, + // number | The main event is 0; the preceding event is -1, and so on. + simsession_number: 8.14, + } satisfies GetResultsEventLogRequest; + + try { + const data = await api.getResultsEventLog(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | `number` | | [Defaults to `undefined`] | +| **simsession_number** | `number` | The main event is 0; the preceding event is -1, and so on. | [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsLapChartData + +> IracingAPIResponse getResultsLapChartData(subsession_id, simsession_number) + + + +### Example + +```ts +import { + Configuration, + ResultsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsLapChartDataRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ResultsApi(config); + + const body = { + // number + subsession_id: 8.14, + // number | The main event is 0; the preceding event is -1, and so on. + simsession_number: 8.14, + } satisfies GetResultsLapChartDataRequest; + + try { + const data = await api.getResultsLapChartData(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | `number` | | [Defaults to `undefined`] | +| **simsession_number** | `number` | The main event is 0; the preceding event is -1, and so on. | [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsLapData + +> IracingAPIResponse getResultsLapData(subsession_id, simsession_number, cust_id, team_id) + + + +### Example + +```ts +import { + Configuration, + ResultsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsLapDataRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ResultsApi(config); + + const body = { + // number + subsession_id: 8.14, + // number | The main event is 0; the preceding event is -1, and so on. + simsession_number: 8.14, + // number | Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team\'s drivers will be included. (optional) + cust_id: 8.14, + // number | Required if the subsession was a team event. (optional) + team_id: 8.14, + } satisfies GetResultsLapDataRequest; + + try { + const data = await api.getResultsLapData(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **subsession_id** | `number` | | [Defaults to `undefined`] | +| **simsession_number** | `number` | The main event is 0; the preceding event is -1, and so on. | [Defaults to `undefined`] | +| **cust_id** | `number` | Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team\'s drivers will be included. | [Optional] [Defaults to `undefined`] | +| **team_id** | `number` | Required if the subsession was a team event. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsSearchHosted + +> IracingAPIResponse getResultsSearchHosted(start_range_begin, start_range_end, finish_range_begin, finish_range_end, cust_id, team_id, host_cust_id, session_name, league_id, league_season_id, car_id, track_id, category_ids) + + + +### Example + +```ts +import { + Configuration, + ResultsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsSearchHostedRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ResultsApi(config); + + const body = { + // Date | Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) + start_range_begin: 2013-10-20T19:20:30+01:00, + // Date | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. (optional) + start_range_end: 2013-10-20T19:20:30+01:00, + // Date | Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) + finish_range_begin: 2013-10-20T19:20:30+01:00, + // Date | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. (optional) + finish_range_end: 2013-10-20T19:20:30+01:00, + // number | The participant\'s customer ID. Ignored if team_id is supplied. (optional) + cust_id: 8.14, + // number | The team ID to search for. Takes priority over cust_id if both are supplied. (optional) + team_id: 8.14, + // number | The host\'s customer ID. (optional) + host_cust_id: 8.14, + // string | Part or all of the session\'s name. (optional) + session_name: session_name_example, + // number | Include only results for the league with this ID. (optional) + league_id: 8.14, + // number | Include only results for the league season with this ID. (optional) + league_season_id: 8.14, + // number | One of the cars used by the session. (optional) + car_id: 8.14, + // number | The ID of the track used by the session. (optional) + track_id: 8.14, + // string | Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) + category_ids: category_ids_example, + } satisfies GetResultsSearchHostedRequest; + + try { + const data = await api.getResultsSearchHosted(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **start_range_begin** | `Date` | Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | [Optional] [Defaults to `undefined`] | +| **start_range_end** | `Date` | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. | [Optional] [Defaults to `undefined`] | +| **finish_range_begin** | `Date` | Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | [Optional] [Defaults to `undefined`] | +| **finish_range_end** | `Date` | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. | [Optional] [Defaults to `undefined`] | +| **cust_id** | `number` | The participant\'s customer ID. Ignored if team_id is supplied. | [Optional] [Defaults to `undefined`] | +| **team_id** | `number` | The team ID to search for. Takes priority over cust_id if both are supplied. | [Optional] [Defaults to `undefined`] | +| **host_cust_id** | `number` | The host\'s customer ID. | [Optional] [Defaults to `undefined`] | +| **session_name** | `string` | Part or all of the session\'s name. | [Optional] [Defaults to `undefined`] | +| **league_id** | `number` | Include only results for the league with this ID. | [Optional] [Defaults to `undefined`] | +| **league_season_id** | `number` | Include only results for the league season with this ID. | [Optional] [Defaults to `undefined`] | +| **car_id** | `number` | One of the cars used by the session. | [Optional] [Defaults to `undefined`] | +| **track_id** | `number` | The ID of the track used by the session. | [Optional] [Defaults to `undefined`] | +| **category_ids** | `string` | Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsSearchSeries + +> IracingAPIResponse getResultsSearchSeries(season_year, season_quarter, start_range_begin, start_range_end, finish_range_begin, finish_range_end, cust_id, team_id, series_id, race_week_num, official_only, event_types, category_ids) + + + +### Example + +```ts +import { + Configuration, + ResultsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsSearchSeriesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ResultsApi(config); + + const body = { + // number | Required when using season_quarter. (optional) + season_year: 8.14, + // number | Required when using season_year. (optional) + season_quarter: 8.14, + // Date | Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) + start_range_begin: 2013-10-20T19:20:30+01:00, + // Date | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. (optional) + start_range_end: 2013-10-20T19:20:30+01:00, + // Date | Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". (optional) + finish_range_begin: 2013-10-20T19:20:30+01:00, + // Date | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. (optional) + finish_range_end: 2013-10-20T19:20:30+01:00, + // number | Include only sessions in which this customer participated. Ignored if team_id is supplied. (optional) + cust_id: 8.14, + // number | Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. (optional) + team_id: 8.14, + // number | Include only sessions for series with this ID. (optional) + series_id: 8.14, + // number | Include only sessions with this race week number. (optional) + race_week_num: 8.14, + // boolean | If true, include only sessions earning championship points. Defaults to all. (optional) + official_only: true, + // string | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) + event_types: event_types_example, + // string | License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 (optional) + category_ids: category_ids_example, + } satisfies GetResultsSearchSeriesRequest; + + try { + const data = await api.getResultsSearchSeries(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_year** | `number` | Required when using season_quarter. | [Optional] [Defaults to `undefined`] | +| **season_quarter** | `number` | Required when using season_year. | [Optional] [Defaults to `undefined`] | +| **start_range_begin** | `Date` | Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | [Optional] [Defaults to `undefined`] | +| **start_range_end** | `Date` | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. | [Optional] [Defaults to `undefined`] | +| **finish_range_begin** | `Date` | Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". | [Optional] [Defaults to `undefined`] | +| **finish_range_end** | `Date` | ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. | [Optional] [Defaults to `undefined`] | +| **cust_id** | `number` | Include only sessions in which this customer participated. Ignored if team_id is supplied. | [Optional] [Defaults to `undefined`] | +| **team_id** | `number` | Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. | [Optional] [Defaults to `undefined`] | +| **series_id** | `number` | Include only sessions for series with this ID. | [Optional] [Defaults to `undefined`] | +| **race_week_num** | `number` | Include only sessions with this race week number. | [Optional] [Defaults to `undefined`] | +| **official_only** | `boolean` | If true, include only sessions earning championship points. Defaults to all. | [Optional] [Defaults to `undefined`] | +| **event_types** | `string` | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | [Optional] [Defaults to `undefined`] | +| **category_ids** | `string` | License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getResultsSeasonResults + +> IracingAPIResponse getResultsSeasonResults(season_id, event_type, race_week_num) + + + +### Example + +```ts +import { + Configuration, + ResultsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetResultsSeasonResultsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new ResultsApi(config); + + const body = { + // number + season_id: 8.14, + // IracingEventType | Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race (optional) + event_type: ..., + // number | The first race week of a season is 0. (optional) + race_week_num: 8.14, + } satisfies GetResultsSeasonResultsRequest; + + try { + const data = await api.getResultsSeasonResults(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **event_type** | `IracingEventType` | Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race | [Optional] [Defaults to `undefined`] [Enum: 2, 3, 4, 5] | +| **race_week_num** | `number` | The first race week of a season is 0. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/SeasonApi.md b/packages/api/client/fetch/docs/SeasonApi.md new file mode 100644 index 0000000..ad15b6c --- /dev/null +++ b/packages/api/client/fetch/docs/SeasonApi.md @@ -0,0 +1,309 @@ +# SeasonApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getSeasonList**](SeasonApi.md#getseasonlist) | **GET** /data/season/list | | +| [**getSeasonRaceGuide**](SeasonApi.md#getseasonraceguide) | **GET** /data/season/race_guide | | +| [**getSeasonSpectatorSubsessionIds**](SeasonApi.md#getseasonspectatorsubsessionids) | **GET** /data/season/spectator_subsessionids | | +| [**getSeasonSpectatorSubsessionIdsDetail**](SeasonApi.md#getseasonspectatorsubsessionidsdetail) | **GET** /data/season/spectator_subsessionids_detail | | + + + +## getSeasonList + +> IracingAPIResponse getSeasonList(season_year, season_quarter) + + + +### Example + +```ts +import { + Configuration, + SeasonApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonListRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeasonApi(config); + + const body = { + // number + season_year: 8.14, + // number + season_quarter: 8.14, + } satisfies GetSeasonListRequest; + + try { + const data = await api.getSeasonList(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_year** | `number` | | [Defaults to `undefined`] | +| **season_quarter** | `number` | | [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonRaceGuide + +> IracingAPIResponse getSeasonRaceGuide(from, include_end_after_from) + + + +### Example + +```ts +import { + Configuration, + SeasonApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonRaceGuideRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeasonApi(config); + + const body = { + // Date | ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. (optional) + from: 2013-10-20T19:20:30+01:00, + // boolean | Include sessions which start before \'from\' but end after. (optional) + include_end_after_from: true, + } satisfies GetSeasonRaceGuideRequest; + + try { + const data = await api.getSeasonRaceGuide(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **from** | `Date` | ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time. | [Optional] [Defaults to `undefined`] | +| **include_end_after_from** | `boolean` | Include sessions which start before \'from\' but end after. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonSpectatorSubsessionIds + +> IracingAPIResponse getSeasonSpectatorSubsessionIds(event_types) + + + +### Example + +```ts +import { + Configuration, + SeasonApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonSpectatorSubsessionIdsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeasonApi(config); + + const body = { + // Array | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) + event_types: ..., + } satisfies GetSeasonSpectatorSubsessionIdsRequest; + + try { + const data = await api.getSeasonSpectatorSubsessionIds(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **event_types** | `Array` | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | [Optional] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeasonSpectatorSubsessionIdsDetail + +> IracingAPIResponse getSeasonSpectatorSubsessionIdsDetail(event_types, season_ids) + + + +### Example + +```ts +import { + Configuration, + SeasonApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeasonSpectatorSubsessionIdsDetailRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeasonApi(config); + + const body = { + // Array | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 (optional) + event_types: ..., + // Array | Seasons to include in the search. Defaults to all. ?season_ids=513,937 (optional) + season_ids: ..., + } satisfies GetSeasonSpectatorSubsessionIdsDetailRequest; + + try { + const data = await api.getSeasonSpectatorSubsessionIdsDetail(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **event_types** | `Array` | Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 | [Optional] | +| **season_ids** | `Array` | Seasons to include in the search. Defaults to all. ?season_ids=513,937 | [Optional] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/SeriesApi.md b/packages/api/client/fetch/docs/SeriesApi.md new file mode 100644 index 0000000..29e5ffe --- /dev/null +++ b/packages/api/client/fetch/docs/SeriesApi.md @@ -0,0 +1,507 @@ +# SeriesApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getSeries**](SeriesApi.md#getseries) | **GET** /data/series/get | | +| [**getSeriesAssets**](SeriesApi.md#getseriesassets) | **GET** /data/series/assets | | +| [**getSeriesPastSeasons**](SeriesApi.md#getseriespastseasons) | **GET** /data/series/past_seasons | | +| [**getSeriesSeasonList**](SeriesApi.md#getseriesseasonlist) | **GET** /data/series/season_list | | +| [**getSeriesSeasonSchedule**](SeriesApi.md#getseriesseasonschedule) | **GET** /data/series/season_schedule | | +| [**getSeriesSeasons**](SeriesApi.md#getseriesseasons) | **GET** /data/series/seasons | | +| [**getSeriesStatsSeries**](SeriesApi.md#getseriesstatsseries) | **GET** /data/series/stats_series | | + + + +## getSeries + +> IracingAPIResponse getSeries() + + + +### Example + +```ts +import { + Configuration, + SeriesApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeriesApi(config); + + try { + const data = await api.getSeries(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesAssets + +> IracingAPIResponse getSeriesAssets() + + + +### Example + +```ts +import { + Configuration, + SeriesApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesAssetsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeriesApi(config); + + try { + const data = await api.getSeriesAssets(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesPastSeasons + +> IracingAPIResponse getSeriesPastSeasons(series_id) + + + +### Example + +```ts +import { + Configuration, + SeriesApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesPastSeasonsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeriesApi(config); + + const body = { + // number + series_id: 8.14, + } satisfies GetSeriesPastSeasonsRequest; + + try { + const data = await api.getSeriesPastSeasons(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **series_id** | `number` | | [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesSeasonList + +> IracingAPIResponse getSeriesSeasonList(include_series, season_year, season_quarter) + + + +### Example + +```ts +import { + Configuration, + SeriesApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesSeasonListRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeriesApi(config); + + const body = { + // boolean (optional) + include_series: true, + // number (optional) + season_year: 8.14, + // number (optional) + season_quarter: 8.14, + } satisfies GetSeriesSeasonListRequest; + + try { + const data = await api.getSeriesSeasonList(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include_series** | `boolean` | | [Optional] [Defaults to `undefined`] | +| **season_year** | `number` | | [Optional] [Defaults to `undefined`] | +| **season_quarter** | `number` | | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesSeasonSchedule + +> IracingAPIResponse getSeriesSeasonSchedule(season_id) + + + +### Example + +```ts +import { + Configuration, + SeriesApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesSeasonScheduleRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeriesApi(config); + + const body = { + // number + season_id: 8.14, + } satisfies GetSeriesSeasonScheduleRequest; + + try { + const data = await api.getSeriesSeasonSchedule(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesSeasons + +> IracingAPIResponse getSeriesSeasons(include_series, season_year, season_quarter) + + + +### Example + +```ts +import { + Configuration, + SeriesApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesSeasonsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeriesApi(config); + + const body = { + // boolean (optional) + include_series: true, + // number | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) + season_year: 8.14, + // number | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. (optional) + season_quarter: 8.14, + } satisfies GetSeriesSeasonsRequest; + + try { + const data = await api.getSeriesSeasons(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **include_series** | `boolean` | | [Optional] [Defaults to `undefined`] | +| **season_year** | `number` | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | [Optional] [Defaults to `undefined`] | +| **season_quarter** | `number` | To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getSeriesStatsSeries + +> IracingAPIResponse getSeriesStatsSeries() + + + +### Example + +```ts +import { + Configuration, + SeriesApi, +} from '@iracing-data/api-client-fetch'; +import type { GetSeriesStatsSeriesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new SeriesApi(config); + + try { + const data = await api.getSeriesStatsSeries(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/StatsApi.md b/packages/api/client/fetch/docs/StatsApi.md new file mode 100644 index 0000000..4201c78 --- /dev/null +++ b/packages/api/client/fetch/docs/StatsApi.md @@ -0,0 +1,1102 @@ +# StatsApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getStatsMemberBests**](StatsApi.md#getstatsmemberbests) | **GET** /data/stats/member_bests | | +| [**getStatsMemberCareer**](StatsApi.md#getstatsmembercareer) | **GET** /data/stats/member_career | | +| [**getStatsMemberDivision**](StatsApi.md#getstatsmemberdivision) | **GET** /data/stats/member_division | | +| [**getStatsMemberRecap**](StatsApi.md#getstatsmemberrecap) | **GET** /data/stats/member_recap | | +| [**getStatsMemberRecentRaces**](StatsApi.md#getstatsmemberrecentraces) | **GET** /data/stats/member_recent_races | | +| [**getStatsMemberSummary**](StatsApi.md#getstatsmembersummary) | **GET** /data/stats/member_summary | | +| [**getStatsMemberYearly**](StatsApi.md#getstatsmemberyearly) | **GET** /data/stats/member_yearly | | +| [**getStatsSeasonDriverStandings**](StatsApi.md#getstatsseasondriverstandings) | **GET** /data/stats/season_driver_standings | | +| [**getStatsSeasonQualifyResults**](StatsApi.md#getstatsseasonqualifyresults) | **GET** /data/stats/season_qualify_results | | +| [**getStatsSeasonSupersessionStandings**](StatsApi.md#getstatsseasonsupersessionstandings) | **GET** /data/stats/season_supersession_standings | | +| [**getStatsSeasonTeamStandings**](StatsApi.md#getstatsseasonteamstandings) | **GET** /data/stats/season_team_standings | | +| [**getStatsSeasonTimeTrialResults**](StatsApi.md#getstatsseasontimetrialresults) | **GET** /data/stats/season_time_trial_results | | +| [**getStatsSeasonTimeTrialStandings**](StatsApi.md#getstatsseasontimetrialstandings) | **GET** /data/stats/season_time_trial_standings | | +| [**getStatsWorldRecords**](StatsApi.md#getstatsworldrecords) | **GET** /data/stats/world_records | | + + + +## getStatsMemberBests + +> IracingAPIResponse getStatsMemberBests(cust_id, car_id) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberBestsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + // number | First call should exclude car_id; use cars_driven list in return for subsequent calls. (optional) + car_id: 8.14, + } satisfies GetStatsMemberBestsRequest; + + try { + const data = await api.getStatsMemberBests(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | +| **car_id** | `number` | First call should exclude car_id; use cars_driven list in return for subsequent calls. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberCareer + +> IracingAPIResponse getStatsMemberCareer(cust_id) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberCareerRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetStatsMemberCareerRequest; + + try { + const data = await api.getStatsMemberCareer(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberDivision + +> IracingAPIResponse getStatsMemberDivision(season_id, event_type) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberDivisionRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + season_id: 8.14, + // 4 | 5 | The event type code for the division type: 4 - Time Trial; 5 - Race + event_type: 8.14, + } satisfies GetStatsMemberDivisionRequest; + + try { + const data = await api.getStatsMemberDivision(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **event_type** | `4`, `5` | The event type code for the division type: 4 - Time Trial; 5 - Race | [Defaults to `undefined`] [Enum: 4, 5] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberRecap + +> IracingAPIResponse getStatsMemberRecap(cust_id, year, season) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberRecapRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + // 1 | 2 | 3 | 4 | Season year; if not supplied the current calendar year (UTC) is used. (optional) + year: 8.14, + // number | Season (quarter) within the year; if not supplied the recap will be for the entire year. (optional) + season: 8.14, + } satisfies GetStatsMemberRecapRequest; + + try { + const data = await api.getStatsMemberRecap(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | +| **year** | `1`, `2`, `3`, `4` | Season year; if not supplied the current calendar year (UTC) is used. | [Optional] [Defaults to `undefined`] [Enum: 1, 2, 3, 4] | +| **season** | `number` | Season (quarter) within the year; if not supplied the recap will be for the entire year. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberRecentRaces + +> IracingAPIResponse getStatsMemberRecentRaces(cust_id) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberRecentRacesRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetStatsMemberRecentRacesRequest; + + try { + const data = await api.getStatsMemberRecentRaces(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberSummary + +> IracingAPIResponse getStatsMemberSummary(cust_id) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberSummaryRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetStatsMemberSummaryRequest; + + try { + const data = await api.getStatsMemberSummary(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsMemberYearly + +> IracingAPIResponse getStatsMemberYearly(cust_id) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsMemberYearlyRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number | Defaults to the authenticated member. (optional) + cust_id: 8.14, + } satisfies GetStatsMemberYearlyRequest; + + try { + const data = await api.getStatsMemberYearly(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **cust_id** | `number` | Defaults to the authenticated member. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonDriverStandings + +> IracingAPIResponse getStatsSeasonDriverStandings(season_id, car_class_id, division, race_week_num) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonDriverStandingsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + season_id: 8.14, + // number + car_class_id: 8.14, + // IracingDivision (optional) + division: ..., + // number | The first race week of a season is 0. (optional) + race_week_num: 8.14, + } satisfies GetStatsSeasonDriverStandingsRequest; + + try { + const data = await api.getStatsSeasonDriverStandings(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **car_class_id** | `number` | | [Defaults to `undefined`] | +| **division** | `IracingDivision` | | [Optional] [Defaults to `undefined`] [Enum: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | +| **race_week_num** | `number` | The first race week of a season is 0. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonQualifyResults + +> IracingAPIResponse getStatsSeasonQualifyResults(season_id, car_class_id, race_week_num, division) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonQualifyResultsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + season_id: 8.14, + // number + car_class_id: 8.14, + // number | The first race week of a season is 0. + race_week_num: 8.14, + // IracingDivision (optional) + division: ..., + } satisfies GetStatsSeasonQualifyResultsRequest; + + try { + const data = await api.getStatsSeasonQualifyResults(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **car_class_id** | `number` | | [Defaults to `undefined`] | +| **race_week_num** | `number` | The first race week of a season is 0. | [Defaults to `undefined`] | +| **division** | `IracingDivision` | | [Optional] [Defaults to `undefined`] [Enum: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonSupersessionStandings + +> IracingAPIResponse getStatsSeasonSupersessionStandings(season_id, car_class_id, division, race_week_num) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonSupersessionStandingsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + season_id: 8.14, + // number + car_class_id: 8.14, + // IracingDivision (optional) + division: ..., + // number | The first race week of a season is 0. (optional) + race_week_num: 8.14, + } satisfies GetStatsSeasonSupersessionStandingsRequest; + + try { + const data = await api.getStatsSeasonSupersessionStandings(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **car_class_id** | `number` | | [Defaults to `undefined`] | +| **division** | `IracingDivision` | | [Optional] [Defaults to `undefined`] [Enum: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | +| **race_week_num** | `number` | The first race week of a season is 0. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonTeamStandings + +> IracingAPIResponse getStatsSeasonTeamStandings(season_id, car_class_id, race_week_num) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonTeamStandingsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + season_id: 8.14, + // number + car_class_id: 8.14, + // number | The first race week of a season is 0. (optional) + race_week_num: 8.14, + } satisfies GetStatsSeasonTeamStandingsRequest; + + try { + const data = await api.getStatsSeasonTeamStandings(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **car_class_id** | `number` | | [Defaults to `undefined`] | +| **race_week_num** | `number` | The first race week of a season is 0. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonTimeTrialResults + +> IracingAPIResponse getStatsSeasonTimeTrialResults(season_id, car_class_id, race_week_num, division) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonTimeTrialResultsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + season_id: 8.14, + // number + car_class_id: 8.14, + // number | The first race week of a season is 0. + race_week_num: 8.14, + // IracingDivision (optional) + division: ..., + } satisfies GetStatsSeasonTimeTrialResultsRequest; + + try { + const data = await api.getStatsSeasonTimeTrialResults(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **car_class_id** | `number` | | [Defaults to `undefined`] | +| **race_week_num** | `number` | The first race week of a season is 0. | [Defaults to `undefined`] | +| **division** | `IracingDivision` | | [Optional] [Defaults to `undefined`] [Enum: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsSeasonTimeTrialStandings + +> IracingAPIResponse getStatsSeasonTimeTrialStandings(season_id, car_class_id, division, race_week_num) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsSeasonTimeTrialStandingsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + season_id: 8.14, + // number + car_class_id: 8.14, + // IracingDivision (optional) + division: ..., + // number | The first race week of a season is 0. (optional) + race_week_num: 8.14, + } satisfies GetStatsSeasonTimeTrialStandingsRequest; + + try { + const data = await api.getStatsSeasonTimeTrialStandings(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **season_id** | `number` | | [Defaults to `undefined`] | +| **car_class_id** | `number` | | [Defaults to `undefined`] | +| **division** | `IracingDivision` | | [Optional] [Defaults to `undefined`] [Enum: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | +| **race_week_num** | `number` | The first race week of a season is 0. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getStatsWorldRecords + +> IracingAPIResponse getStatsWorldRecords(car_id, track_id, season_year, season_quarter) + + + +### Example + +```ts +import { + Configuration, + StatsApi, +} from '@iracing-data/api-client-fetch'; +import type { GetStatsWorldRecordsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new StatsApi(config); + + const body = { + // number + car_id: 8.14, + // number + track_id: 8.14, + // number | Limit best times to a given year. (optional) + season_year: 8.14, + // number | Limit best times to a given quarter; only applicable when year is used. (optional) + season_quarter: 8.14, + } satisfies GetStatsWorldRecordsRequest; + + try { + const data = await api.getStatsWorldRecords(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **car_id** | `number` | | [Defaults to `undefined`] | +| **track_id** | `number` | | [Defaults to `undefined`] | +| **season_year** | `number` | Limit best times to a given year. | [Optional] [Defaults to `undefined`] | +| **season_quarter** | `number` | Limit best times to a given quarter; only applicable when year is used. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/TeamApi.md b/packages/api/client/fetch/docs/TeamApi.md new file mode 100644 index 0000000..7a6637b --- /dev/null +++ b/packages/api/client/fetch/docs/TeamApi.md @@ -0,0 +1,149 @@ +# TeamApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTeam**](TeamApi.md#getteam) | **GET** /data/team/get | | +| [**getTeamMembership**](TeamApi.md#getteammembership) | **GET** /data/team/membership | | + + + +## getTeam + +> IracingAPIResponse getTeam(team_id, include_licenses) + + + +### Example + +```ts +import { + Configuration, + TeamApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTeamRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new TeamApi(config); + + const body = { + // number + team_id: 8.14, + // boolean | For faster responses, only request when necessary. (optional) + include_licenses: true, + } satisfies GetTeamRequest; + + try { + const data = await api.getTeam(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **team_id** | `number` | | [Defaults to `undefined`] | +| **include_licenses** | `boolean` | For faster responses, only request when necessary. | [Optional] [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTeamMembership + +> IracingAPIResponse getTeamMembership() + + + +### Example + +```ts +import { + Configuration, + TeamApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTeamMembershipRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new TeamApi(config); + + try { + const data = await api.getTeamMembership(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/TimeAttackApi.md b/packages/api/client/fetch/docs/TimeAttackApi.md new file mode 100644 index 0000000..ff53b5e --- /dev/null +++ b/packages/api/client/fetch/docs/TimeAttackApi.md @@ -0,0 +1,81 @@ +# TimeAttackApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTimeAttackMemberSeasonResults**](TimeAttackApi.md#gettimeattackmemberseasonresults) | **GET** /data/time_attack/member_season_results | | + + + +## getTimeAttackMemberSeasonResults + +> IracingAPIResponse getTimeAttackMemberSeasonResults(ta_comp_season_id) + + + +### Example + +```ts +import { + Configuration, + TimeAttackApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTimeAttackMemberSeasonResultsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new TimeAttackApi(config); + + const body = { + // number + ta_comp_season_id: 8.14, + } satisfies GetTimeAttackMemberSeasonResultsRequest; + + try { + const data = await api.getTimeAttackMemberSeasonResults(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **ta_comp_season_id** | `number` | | [Defaults to `undefined`] | + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/docs/TrackApi.md b/packages/api/client/fetch/docs/TrackApi.md new file mode 100644 index 0000000..2031793 --- /dev/null +++ b/packages/api/client/fetch/docs/TrackApi.md @@ -0,0 +1,138 @@ +# TrackApi + +All URIs are relative to *https://members-ng.iracing.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getTrack**](TrackApi.md#gettrack) | **GET** /data/track/get | | +| [**getTrackAssets**](TrackApi.md#gettrackassets) | **GET** /data/track/assets | | + + + +## getTrack + +> IracingAPIResponse getTrack() + + + +### Example + +```ts +import { + Configuration, + TrackApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTrackRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new TrackApi(config); + + try { + const data = await api.getTrack(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## getTrackAssets + +> IracingAPIResponse getTrackAssets() + + + +### Example + +```ts +import { + Configuration, + TrackApi, +} from '@iracing-data/api-client-fetch'; +import type { GetTrackAssetsRequest } from '@iracing-data/api-client-fetch'; + +async function example() { + console.log("🚀 Testing @iracing-data/api-client-fetch SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new TrackApi(config); + + try { + const data = await api.getTrackAssets(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingAPIResponse**](IracingAPIResponse.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **401** | Access token is missing or invalid. | - | +| **429** | Rate limited | * x-ratelimit-limit -
* x-ratelimit-remaining -
* x-ratelimit-reset -
| +| **503** | Maintenance | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/api/client/fetch/package.json b/packages/api/client/fetch/package.json new file mode 100644 index 0000000..00f7ae2 --- /dev/null +++ b/packages/api/client/fetch/package.json @@ -0,0 +1,19 @@ +{ + "name": "@iracing-data/api-client-fetch", + "version": "0.0.1", + "description": "OpenAPI client for @iracing-data/api-client-fetch", + "author": "OpenAPI-Generator", + "repository": { + "type": "git", + "url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git" + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "scripts": { + "build": "tsc", + "prepare": "npm run build" + }, + "devDependencies": { + "typescript": "^4.0 || ^5.0" + } +} diff --git a/packages/api/client/fetch/src/apis/AuthApi.ts b/packages/api/client/fetch/src/apis/AuthApi.ts new file mode 100644 index 0000000..38e76c3 --- /dev/null +++ b/packages/api/client/fetch/src/apis/AuthApi.ts @@ -0,0 +1,71 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + PostAuthRequest, +} from '../models/index'; +import { + PostAuthRequestFromJSON, + PostAuthRequestToJSON, +} from '../models/index'; + +export interface PostAuthOperationRequest { + post_auth_request?: PostAuthRequest; +} + +/** + * + */ +export class AuthApi extends runtime.BaseAPI { + + /** + */ + async postAuthRaw(requestParameters: PostAuthOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/auth`; + + const response = await this.request({ + path: urlPath, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: PostAuthRequestToJSON(requestParameters['post_auth_request']), + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async postAuth(requestParameters: PostAuthOperationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.postAuthRaw(requestParameters, initOverrides); + } + +} diff --git a/packages/api/client/fetch/src/apis/CarApi.ts b/packages/api/client/fetch/src/apis/CarApi.ts new file mode 100644 index 0000000..fb9b42d --- /dev/null +++ b/packages/api/client/fetch/src/apis/CarApi.ts @@ -0,0 +1,105 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +/** + * + */ +export class CarApi extends runtime.BaseAPI { + + /** + */ + async getCarRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/car/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getCar(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getCarRaw(initOverrides); + return await response.value(); + } + + /** + * image paths are relative to https://images-static.iracing.com/ + */ + async getCarAssetsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/car/assets`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * image paths are relative to https://images-static.iracing.com/ + */ + async getCarAssets(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getCarAssetsRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/CarclassApi.ts b/packages/api/client/fetch/src/apis/CarclassApi.ts new file mode 100644 index 0000000..fe207fd --- /dev/null +++ b/packages/api/client/fetch/src/apis/CarclassApi.ts @@ -0,0 +1,70 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +/** + * + */ +export class CarclassApi extends runtime.BaseAPI { + + /** + * Gets car classes. + */ + async getCarClassRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/carclass/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * Gets car classes. + */ + async getCarClass(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getCarClassRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/ConstantsApi.ts b/packages/api/client/fetch/src/apis/ConstantsApi.ts new file mode 100644 index 0000000..2545032 --- /dev/null +++ b/packages/api/client/fetch/src/apis/ConstantsApi.ts @@ -0,0 +1,144 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +/** + * + */ +export class ConstantsApi extends runtime.BaseAPI { + + /** + * Constant; returned directly as an array of objects + */ + async getConstantsCategoriesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/constants/categories`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * Constant; returned directly as an array of objects + */ + async getConstantsCategories(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getConstantsCategoriesRaw(initOverrides); + return await response.value(); + } + + /** + * Constant; returned directly as an array of objects + */ + async getConstantsDivisionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/constants/divisions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * Constant; returned directly as an array of objects + */ + async getConstantsDivisions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getConstantsDivisionsRaw(initOverrides); + return await response.value(); + } + + /** + * Constant; returned directly as an array of objects + */ + async getConstantsEventTypesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/constants/event_types`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * Constant; returned directly as an array of objects + */ + async getConstantsEventTypes(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getConstantsEventTypesRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/DocApi.ts b/packages/api/client/fetch/src/apis/DocApi.ts new file mode 100644 index 0000000..79d3191 --- /dev/null +++ b/packages/api/client/fetch/src/apis/DocApi.ts @@ -0,0 +1,2953 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingCategory, + IracingServiceMethodDocs, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingCategoryFromJSON, + IracingCategoryToJSON, + IracingServiceMethodDocsFromJSON, + IracingServiceMethodDocsToJSON, +} from '../models/index'; + +export interface GetDriverStatsByCategoryCategoryDocsRequest { + category: IracingCategory; +} + +/** + * + */ +export class DocApi extends runtime.BaseAPI { + + /** + */ + async getCarAssetsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/car/assets`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getCarAssetsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getCarAssetsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getCarClassDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/carclass`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getCarClassDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getCarClassDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getCarClassGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/carclass/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getCarClassGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getCarClassGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getCarDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/car`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getCarDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getCarDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getCarGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/car/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getCarGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getCarGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getConstantsCategoriesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/constants/categories`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getConstantsCategoriesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getConstantsCategoriesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getConstantsDivisionsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/constants/divisions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getConstantsDivisionsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getConstantsDivisionsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getConstantsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/constants`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getConstantsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getConstantsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getConstantsEventTypesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/constants/event_types`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getConstantsEventTypesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getConstantsEventTypesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + */ + async getDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: { [key: string]: IracingServiceMethodDocs; }; }> { + const response = await this.getDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getDriverStatsByCategoryCategoryDocsRaw(requestParameters: GetDriverStatsByCategoryCategoryDocsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['category'] == null) { + throw new runtime.RequiredError( + 'category', + 'Required parameter "category" was null or undefined when calling getDriverStatsByCategoryCategoryDocs().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/driver_stats_by_category/{category}`; + urlPath = urlPath.replace(`{${"category"}}`, encodeURIComponent(String(requestParameters['category']))); + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getDriverStatsByCategoryCategoryDocs(requestParameters: GetDriverStatsByCategoryCategoryDocsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getDriverStatsByCategoryCategoryDocsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getDriverStatsByCategoryDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/driver_stats_by_category`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getDriverStatsByCategoryDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getDriverStatsByCategoryDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getHostedCombinedSessionsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/hosted/combined_sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getHostedCombinedSessionsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getHostedCombinedSessionsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getHostedDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/hosted`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getHostedDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getHostedDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getHostedSessionsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/hosted/sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getHostedSessionsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getHostedSessionsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueCustomerLeagueSessionsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/cust_league_sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueCustomerLeagueSessionsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueCustomerLeagueSessionsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueDirectoryDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/directory`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueDirectoryDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueDirectoryDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getLeagueDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getLeagueDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueGetPointsSystemsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/get_points_systems`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueGetPointsSystemsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueGetPointsSystemsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueMembershipDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/membership`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueMembershipDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueMembershipDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueRosterDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/roster`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueRosterDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueRosterDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueSeasonSessionsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/season_sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueSeasonSessionsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueSeasonSessionsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueSeasonStandingsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/season_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueSeasonStandingsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueSeasonStandingsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueSeasonsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/league/seasons`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLeagueSeasonsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueSeasonsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupCountriesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/lookup/countries`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLookupCountriesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupCountriesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/lookup`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getLookupDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getLookupDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupDriversDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/lookup/drivers`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLookupDriversDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupDriversDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupFlairsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/lookup/flairs`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLookupFlairsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupFlairsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/lookup/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLookupGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupLicensesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/lookup/licenses`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getLookupLicensesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupLicensesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberAwardInstancesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member/award_instances`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getMemberAwardInstancesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberAwardInstancesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberAwardsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member/awards`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getMemberAwardsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberAwardsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberChartDataDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member/chart_data`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getMemberChartDataDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberChartDataDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getMemberDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getMemberDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getMemberGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberInfoDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member/info`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getMemberInfoDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberInfoDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberParticipationCreditsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member/participation_credits`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getMemberParticipationCreditsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberParticipationCreditsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberProfileDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/member/profile`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getMemberProfileDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberProfileDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getResultsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getResultsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsEventLogDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results/event_log`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getResultsEventLogDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsEventLogDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getResultsGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsLapChartDataDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results/lap_chart_data`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getResultsLapChartDataDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsLapChartDataDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsLapDataDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results/lap_data`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getResultsLapDataDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsLapDataDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsSearchHostedDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results/search_hosted`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getResultsSearchHostedDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsSearchHostedDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsSearchSeriesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results/search_series`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getResultsSearchSeriesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsSearchSeriesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getResultsSeasonResultsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/results/season_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getResultsSeasonResultsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsSeasonResultsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/season`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getSeasonDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getSeasonDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonListDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/season/list`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeasonListDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonListDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonRaceGuideDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/season/race_guide`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeasonRaceGuideDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonRaceGuideDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonSpectatorSubsessionIdsDetailDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/season/spectator_subsessionids_detail`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeasonSpectatorSubsessionIdsDetailDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonSpectatorSubsessionIdsDetailDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonSpectatorSubsessionIdsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/season/spectator_subsessionids`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeasonSpectatorSubsessionIdsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonSpectatorSubsessionIdsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesAssetsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series/assets`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeriesAssetsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesAssetsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getSeriesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getSeriesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeriesGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesPastSeasonsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series/past_seasons`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeriesPastSeasonsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesPastSeasonsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesSeasonListDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series/season_list`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeriesSeasonListDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesSeasonListDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesSeasonScheduleDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series/season_schedule`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeriesSeasonScheduleDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesSeasonScheduleDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesSeasonsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series/seasons`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeriesSeasonsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesSeasonsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesStatsSeriesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/series/stats_series`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getSeriesStatsSeriesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesStatsSeriesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getStatsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getStatsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberBestsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/member_bests`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberBestsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberBestsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberCareerDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/member_career`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberCareerDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberCareerDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberDivisionDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/member_division`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberDivisionDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberDivisionDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberRecapDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/member_recap`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberRecapDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberRecapDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberRecentRacesDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/member_recent_races`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberRecentRacesDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberRecentRacesDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberSummaryDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/member_summary`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberSummaryDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberSummaryDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberYearlyDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/member_yearly`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberYearlyDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberYearlyDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonDriverStandingsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/season_driver_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonDriverStandingsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonDriverStandingsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonQualifyResultsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/season_qualify_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonQualifyResultsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonQualifyResultsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonSupersessionStandingsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/season_supersession_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonSupersessionStandingsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonSupersessionStandingsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonTTResultsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/season_tt_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonTTResultsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonTTResultsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonTTStandingsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/season_tt_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonTTStandingsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonTTStandingsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonTeamStandingsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/season_team_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonTeamStandingsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonTeamStandingsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getStatsWorldRecordsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/stats/world_records`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getStatsWorldRecordsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsWorldRecordsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTeamDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/team`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getTeamDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getTeamDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTeamGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/team/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getTeamGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTeamGetDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTeamMembershipDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/team/membership`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getTeamMembershipDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTeamMembershipDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTimeAttackDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/time_attack`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getTimeAttackDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getTimeAttackDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTimeAttackMemberSeasonResultsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/time_attack/member_season_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getTimeAttackMemberSeasonResultsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTimeAttackMemberSeasonResultsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTrackAssetsDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/track/assets`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getTrackAssetsDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTrackAssetsDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTrackDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/track`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, IracingServiceMethodDocsFromJSON)); + } + + /** + */ + async getTrackDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: IracingServiceMethodDocs; }> { + const response = await this.getTrackDocsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTrackGetDocsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/doc/track/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingServiceMethodDocsFromJSON(jsonValue)); + } + + /** + */ + async getTrackGetDocs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTrackGetDocsRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/DriverStatsApi.ts b/packages/api/client/fetch/src/apis/DriverStatsApi.ts new file mode 100644 index 0000000..78c9145 --- /dev/null +++ b/packages/api/client/fetch/src/apis/DriverStatsApi.ts @@ -0,0 +1,83 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, + IracingCategory, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, + IracingCategoryFromJSON, + IracingCategoryToJSON, +} from '../models/index'; + +export interface GetDriverStatsByCategoryRequest { + category: IracingCategory; +} + +/** + * + */ +export class DriverStatsApi extends runtime.BaseAPI { + + /** + */ + async getDriverStatsByCategoryRaw(requestParameters: GetDriverStatsByCategoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['category'] == null) { + throw new runtime.RequiredError( + 'category', + 'Required parameter "category" was null or undefined when calling getDriverStatsByCategory().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/driver_stats_by_category/{category}`; + urlPath = urlPath.replace(`{${"category"}}`, encodeURIComponent(String(requestParameters['category']))); + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getDriverStatsByCategory(requestParameters: GetDriverStatsByCategoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getDriverStatsByCategoryRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/HostedApi.ts b/packages/api/client/fetch/src/apis/HostedApi.ts new file mode 100644 index 0000000..208cab2 --- /dev/null +++ b/packages/api/client/fetch/src/apis/HostedApi.ts @@ -0,0 +1,115 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +export interface GetHostedCombinedSessionsRequest { + package_id?: number; +} + +/** + * + */ +export class HostedApi extends runtime.BaseAPI { + + /** + * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + */ + async getHostedCombinedSessionsRaw(requestParameters: GetHostedCombinedSessionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['package_id'] != null) { + queryParameters['package_id'] = requestParameters['package_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/hosted/combined_sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user. + */ + async getHostedCombinedSessions(requestParameters: GetHostedCombinedSessionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getHostedCombinedSessionsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + */ + async getHostedSessionsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/hosted/sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user. + */ + async getHostedSessions(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getHostedSessionsRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/LeagueApi.ts b/packages/api/client/fetch/src/apis/LeagueApi.ts new file mode 100644 index 0000000..3d970a6 --- /dev/null +++ b/packages/api/client/fetch/src/apis/LeagueApi.ts @@ -0,0 +1,586 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +export interface GetLeagueRequest { + league_id: number; + include_licenses?: boolean; +} + +export interface GetLeagueCustomerLeagueSessionsRequest { + mine?: boolean; + package_id?: number; +} + +export interface GetLeagueDirectoryRequest { + search?: string; + tag?: string; + restrict_to_member?: boolean; + restrict_to_recruiting?: boolean; + restrict_to_friends?: boolean; + restrict_to_watched?: boolean; + minimum_roster_count?: number; + maximum_roster_count?: number; + lowerbound?: number; + upperbound?: number; + sort?: string; + order?: string; +} + +export interface GetLeagueMembershipRequest { + cust_id?: number; + include_league?: boolean; +} + +export interface GetLeaguePointsSystemsRequest { + league_id: number; + season_id?: number; +} + +export interface GetLeagueRosterRequest { + league_id: number; + include_licenses?: boolean; +} + +export interface GetLeagueSeasonSessionsRequest { + league_id: number; + season_id: number; + results_only?: boolean; +} + +export interface GetLeagueSeasonStandingsRequest { + league_id: number; + season_id: number; + car_class_id?: number; + car_id?: number; +} + +export interface GetLeagueSeasonsRequest { + league_id: number; + retired?: boolean; +} + +/** + * + */ +export class LeagueApi extends runtime.BaseAPI { + + /** + */ + async getLeagueRaw(requestParameters: GetLeagueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['league_id'] == null) { + throw new runtime.RequiredError( + 'league_id', + 'Required parameter "league_id" was null or undefined when calling getLeague().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + if (requestParameters['include_licenses'] != null) { + queryParameters['include_licenses'] = requestParameters['include_licenses']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeague(requestParameters: GetLeagueRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueCustomerLeagueSessionsRaw(requestParameters: GetLeagueCustomerLeagueSessionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['mine'] != null) { + queryParameters['mine'] = requestParameters['mine']; + } + + if (requestParameters['package_id'] != null) { + queryParameters['package_id'] = requestParameters['package_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/cust_league_sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeagueCustomerLeagueSessions(requestParameters: GetLeagueCustomerLeagueSessionsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueCustomerLeagueSessionsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueDirectoryRaw(requestParameters: GetLeagueDirectoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['search'] != null) { + queryParameters['search'] = requestParameters['search']; + } + + if (requestParameters['tag'] != null) { + queryParameters['tag'] = requestParameters['tag']; + } + + if (requestParameters['restrict_to_member'] != null) { + queryParameters['restrict_to_member'] = requestParameters['restrict_to_member']; + } + + if (requestParameters['restrict_to_recruiting'] != null) { + queryParameters['restrict_to_recruiting'] = requestParameters['restrict_to_recruiting']; + } + + if (requestParameters['restrict_to_friends'] != null) { + queryParameters['restrict_to_friends'] = requestParameters['restrict_to_friends']; + } + + if (requestParameters['restrict_to_watched'] != null) { + queryParameters['restrict_to_watched'] = requestParameters['restrict_to_watched']; + } + + if (requestParameters['minimum_roster_count'] != null) { + queryParameters['minimum_roster_count'] = requestParameters['minimum_roster_count']; + } + + if (requestParameters['maximum_roster_count'] != null) { + queryParameters['maximum_roster_count'] = requestParameters['maximum_roster_count']; + } + + if (requestParameters['lowerbound'] != null) { + queryParameters['lowerbound'] = requestParameters['lowerbound']; + } + + if (requestParameters['upperbound'] != null) { + queryParameters['upperbound'] = requestParameters['upperbound']; + } + + if (requestParameters['sort'] != null) { + queryParameters['sort'] = requestParameters['sort']; + } + + if (requestParameters['order'] != null) { + queryParameters['order'] = requestParameters['order']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/directory`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeagueDirectory(requestParameters: GetLeagueDirectoryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueDirectoryRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueMembershipRaw(requestParameters: GetLeagueMembershipRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['include_league'] != null) { + queryParameters['include_league'] = requestParameters['include_league']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/membership`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeagueMembership(requestParameters: GetLeagueMembershipRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueMembershipRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeaguePointsSystemsRaw(requestParameters: GetLeaguePointsSystemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['league_id'] == null) { + throw new runtime.RequiredError( + 'league_id', + 'Required parameter "league_id" was null or undefined when calling getLeaguePointsSystems().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/get_points_systems`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeaguePointsSystems(requestParameters: GetLeaguePointsSystemsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeaguePointsSystemsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueRosterRaw(requestParameters: GetLeagueRosterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['league_id'] == null) { + throw new runtime.RequiredError( + 'league_id', + 'Required parameter "league_id" was null or undefined when calling getLeagueRoster().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + if (requestParameters['include_licenses'] != null) { + queryParameters['include_licenses'] = requestParameters['include_licenses']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/roster`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeagueRoster(requestParameters: GetLeagueRosterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueRosterRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueSeasonSessionsRaw(requestParameters: GetLeagueSeasonSessionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['league_id'] == null) { + throw new runtime.RequiredError( + 'league_id', + 'Required parameter "league_id" was null or undefined when calling getLeagueSeasonSessions().' + ); + } + + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getLeagueSeasonSessions().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['results_only'] != null) { + queryParameters['results_only'] = requestParameters['results_only']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/season_sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeagueSeasonSessions(requestParameters: GetLeagueSeasonSessionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueSeasonSessionsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueSeasonStandingsRaw(requestParameters: GetLeagueSeasonStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['league_id'] == null) { + throw new runtime.RequiredError( + 'league_id', + 'Required parameter "league_id" was null or undefined when calling getLeagueSeasonStandings().' + ); + } + + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getLeagueSeasonStandings().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['car_class_id'] != null) { + queryParameters['car_class_id'] = requestParameters['car_class_id']; + } + + if (requestParameters['car_id'] != null) { + queryParameters['car_id'] = requestParameters['car_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/season_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeagueSeasonStandings(requestParameters: GetLeagueSeasonStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueSeasonStandingsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLeagueSeasonsRaw(requestParameters: GetLeagueSeasonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['league_id'] == null) { + throw new runtime.RequiredError( + 'league_id', + 'Required parameter "league_id" was null or undefined when calling getLeagueSeasons().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + if (requestParameters['retired'] != null) { + queryParameters['retired'] = requestParameters['retired']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/league/seasons`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLeagueSeasons(requestParameters: GetLeagueSeasonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLeagueSeasonsRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/LookupApi.ts b/packages/api/client/fetch/src/apis/LookupApi.ts new file mode 100644 index 0000000..274e660 --- /dev/null +++ b/packages/api/client/fetch/src/apis/LookupApi.ts @@ -0,0 +1,228 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +export interface GetLookupDriversRequest { + search_term: string; + league_id?: number; +} + +/** + * + */ +export class LookupApi extends runtime.BaseAPI { + + /** + */ + async getLookupRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/lookup/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLookup(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupCountriesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/lookup/countries`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLookupCountries(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupCountriesRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupDriversRaw(requestParameters: GetLookupDriversRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['search_term'] == null) { + throw new runtime.RequiredError( + 'search_term', + 'Required parameter "search_term" was null or undefined when calling getLookupDrivers().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['search_term'] != null) { + queryParameters['search_term'] = requestParameters['search_term']; + } + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/lookup/drivers`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLookupDrivers(requestParameters: GetLookupDriversRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupDriversRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getLookupFlairsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/lookup/flairs`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLookupFlairs(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupFlairsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getLookupLicensesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/lookup/licenses`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getLookupLicenses(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getLookupLicensesRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/MemberApi.ts b/packages/api/client/fetch/src/apis/MemberApi.ts new file mode 100644 index 0000000..c95f805 --- /dev/null +++ b/packages/api/client/fetch/src/apis/MemberApi.ts @@ -0,0 +1,368 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +export interface GetMemberRequest { + cust_ids: string; + include_licenses?: boolean; +} + +export interface GetMemberAwardInstancesRequest { + award_id: number; + cust_id?: number; +} + +export interface GetMemberAwardsRequest { + cust_id?: number; +} + +export interface GetMemberChartDataRequest { + category_id: number; + chart_type: number; + cust_id?: number; +} + +export interface GetMemberProfileRequest { + cust_id?: number; +} + +/** + * + */ +export class MemberApi extends runtime.BaseAPI { + + /** + */ + async getMemberRaw(requestParameters: GetMemberRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['cust_ids'] == null) { + throw new runtime.RequiredError( + 'cust_ids', + 'Required parameter "cust_ids" was null or undefined when calling getMember().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['cust_ids'] != null) { + queryParameters['cust_ids'] = requestParameters['cust_ids']; + } + + if (requestParameters['include_licenses'] != null) { + queryParameters['include_licenses'] = requestParameters['include_licenses']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/member/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getMember(requestParameters: GetMemberRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getMemberAwardInstancesRaw(requestParameters: GetMemberAwardInstancesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['award_id'] == null) { + throw new runtime.RequiredError( + 'award_id', + 'Required parameter "award_id" was null or undefined when calling getMemberAwardInstances().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['award_id'] != null) { + queryParameters['award_id'] = requestParameters['award_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/member/award_instances`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getMemberAwardInstances(requestParameters: GetMemberAwardInstancesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberAwardInstancesRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getMemberAwardsRaw(requestParameters: GetMemberAwardsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/member/awards`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getMemberAwards(requestParameters: GetMemberAwardsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberAwardsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getMemberChartDataRaw(requestParameters: GetMemberChartDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['category_id'] == null) { + throw new runtime.RequiredError( + 'category_id', + 'Required parameter "category_id" was null or undefined when calling getMemberChartData().' + ); + } + + if (requestParameters['chart_type'] == null) { + throw new runtime.RequiredError( + 'chart_type', + 'Required parameter "chart_type" was null or undefined when calling getMemberChartData().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['category_id'] != null) { + queryParameters['category_id'] = requestParameters['category_id']; + } + + if (requestParameters['chart_type'] != null) { + queryParameters['chart_type'] = requestParameters['chart_type']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/member/chart_data`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getMemberChartData(requestParameters: GetMemberChartDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberChartDataRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getMemberInfoRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/member/info`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getMemberInfo(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberInfoRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getMemberParticipationCreditsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/member/participation_credits`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getMemberParticipationCredits(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberParticipationCreditsRaw(initOverrides); + return await response.value(); + } + + /** + * Gets a requested user\'s profile. + */ + async getMemberProfileRaw(requestParameters: GetMemberProfileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/member/profile`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + * Gets a requested user\'s profile. + */ + async getMemberProfile(requestParameters: GetMemberProfileRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getMemberProfileRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/ResultsApi.ts b/packages/api/client/fetch/src/apis/ResultsApi.ts new file mode 100644 index 0000000..546e446 --- /dev/null +++ b/packages/api/client/fetch/src/apis/ResultsApi.ts @@ -0,0 +1,553 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, + IracingEventType, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, + IracingEventTypeFromJSON, + IracingEventTypeToJSON, +} from '../models/index'; + +export interface GetResultsRequest { + subsession_id: number; + include_licenses?: boolean; +} + +export interface GetResultsEventLogRequest { + subsession_id: number; + simsession_number: number; +} + +export interface GetResultsLapChartDataRequest { + subsession_id: number; + simsession_number: number; +} + +export interface GetResultsLapDataRequest { + subsession_id: number; + simsession_number: number; + cust_id?: number; + team_id?: number; +} + +export interface GetResultsSearchHostedRequest { + start_range_begin?: Date; + start_range_end?: Date; + finish_range_begin?: Date; + finish_range_end?: Date; + cust_id?: number; + team_id?: number; + host_cust_id?: number; + session_name?: string; + league_id?: number; + league_season_id?: number; + car_id?: number; + track_id?: number; + category_ids?: string; +} + +export interface GetResultsSearchSeriesRequest { + season_year?: number; + season_quarter?: number; + start_range_begin?: Date; + start_range_end?: Date; + finish_range_begin?: Date; + finish_range_end?: Date; + cust_id?: number; + team_id?: number; + series_id?: number; + race_week_num?: number; + official_only?: boolean; + event_types?: string; + category_ids?: string; +} + +export interface GetResultsSeasonResultsRequest { + season_id: number; + event_type?: IracingEventType; + race_week_num?: number; +} + +/** + * + */ +export class ResultsApi extends runtime.BaseAPI { + + /** + */ + async getResultsRaw(requestParameters: GetResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['subsession_id'] == null) { + throw new runtime.RequiredError( + 'subsession_id', + 'Required parameter "subsession_id" was null or undefined when calling getResults().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['subsession_id'] != null) { + queryParameters['subsession_id'] = requestParameters['subsession_id']; + } + + if (requestParameters['include_licenses'] != null) { + queryParameters['include_licenses'] = requestParameters['include_licenses']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/results/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getResults(requestParameters: GetResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getResultsEventLogRaw(requestParameters: GetResultsEventLogRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['subsession_id'] == null) { + throw new runtime.RequiredError( + 'subsession_id', + 'Required parameter "subsession_id" was null or undefined when calling getResultsEventLog().' + ); + } + + if (requestParameters['simsession_number'] == null) { + throw new runtime.RequiredError( + 'simsession_number', + 'Required parameter "simsession_number" was null or undefined when calling getResultsEventLog().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['subsession_id'] != null) { + queryParameters['subsession_id'] = requestParameters['subsession_id']; + } + + if (requestParameters['simsession_number'] != null) { + queryParameters['simsession_number'] = requestParameters['simsession_number']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/results/event_log`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getResultsEventLog(requestParameters: GetResultsEventLogRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsEventLogRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getResultsLapChartDataRaw(requestParameters: GetResultsLapChartDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['subsession_id'] == null) { + throw new runtime.RequiredError( + 'subsession_id', + 'Required parameter "subsession_id" was null or undefined when calling getResultsLapChartData().' + ); + } + + if (requestParameters['simsession_number'] == null) { + throw new runtime.RequiredError( + 'simsession_number', + 'Required parameter "simsession_number" was null or undefined when calling getResultsLapChartData().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['subsession_id'] != null) { + queryParameters['subsession_id'] = requestParameters['subsession_id']; + } + + if (requestParameters['simsession_number'] != null) { + queryParameters['simsession_number'] = requestParameters['simsession_number']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/results/lap_chart_data`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getResultsLapChartData(requestParameters: GetResultsLapChartDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsLapChartDataRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getResultsLapDataRaw(requestParameters: GetResultsLapDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['subsession_id'] == null) { + throw new runtime.RequiredError( + 'subsession_id', + 'Required parameter "subsession_id" was null or undefined when calling getResultsLapData().' + ); + } + + if (requestParameters['simsession_number'] == null) { + throw new runtime.RequiredError( + 'simsession_number', + 'Required parameter "simsession_number" was null or undefined when calling getResultsLapData().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['subsession_id'] != null) { + queryParameters['subsession_id'] = requestParameters['subsession_id']; + } + + if (requestParameters['simsession_number'] != null) { + queryParameters['simsession_number'] = requestParameters['simsession_number']; + } + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['team_id'] != null) { + queryParameters['team_id'] = requestParameters['team_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/results/lap_data`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getResultsLapData(requestParameters: GetResultsLapDataRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsLapDataRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getResultsSearchHostedRaw(requestParameters: GetResultsSearchHostedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['start_range_begin'] != null) { + queryParameters['start_range_begin'] = requestParameters['start_range_begin']; + } + + if (requestParameters['start_range_end'] != null) { + queryParameters['start_range_end'] = requestParameters['start_range_end']; + } + + if (requestParameters['finish_range_begin'] != null) { + queryParameters['finish_range_begin'] = requestParameters['finish_range_begin']; + } + + if (requestParameters['finish_range_end'] != null) { + queryParameters['finish_range_end'] = requestParameters['finish_range_end']; + } + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['team_id'] != null) { + queryParameters['team_id'] = requestParameters['team_id']; + } + + if (requestParameters['host_cust_id'] != null) { + queryParameters['host_cust_id'] = requestParameters['host_cust_id']; + } + + if (requestParameters['session_name'] != null) { + queryParameters['session_name'] = requestParameters['session_name']; + } + + if (requestParameters['league_id'] != null) { + queryParameters['league_id'] = requestParameters['league_id']; + } + + if (requestParameters['league_season_id'] != null) { + queryParameters['league_season_id'] = requestParameters['league_season_id']; + } + + if (requestParameters['car_id'] != null) { + queryParameters['car_id'] = requestParameters['car_id']; + } + + if (requestParameters['track_id'] != null) { + queryParameters['track_id'] = requestParameters['track_id']; + } + + if (requestParameters['category_ids'] != null) { + queryParameters['category_ids'] = requestParameters['category_ids']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/results/search_hosted`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getResultsSearchHosted(requestParameters: GetResultsSearchHostedRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsSearchHostedRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getResultsSearchSeriesRaw(requestParameters: GetResultsSearchSeriesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['season_year'] != null) { + queryParameters['season_year'] = requestParameters['season_year']; + } + + if (requestParameters['season_quarter'] != null) { + queryParameters['season_quarter'] = requestParameters['season_quarter']; + } + + if (requestParameters['start_range_begin'] != null) { + queryParameters['start_range_begin'] = requestParameters['start_range_begin']; + } + + if (requestParameters['start_range_end'] != null) { + queryParameters['start_range_end'] = requestParameters['start_range_end']; + } + + if (requestParameters['finish_range_begin'] != null) { + queryParameters['finish_range_begin'] = requestParameters['finish_range_begin']; + } + + if (requestParameters['finish_range_end'] != null) { + queryParameters['finish_range_end'] = requestParameters['finish_range_end']; + } + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['team_id'] != null) { + queryParameters['team_id'] = requestParameters['team_id']; + } + + if (requestParameters['series_id'] != null) { + queryParameters['series_id'] = requestParameters['series_id']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + if (requestParameters['official_only'] != null) { + queryParameters['official_only'] = requestParameters['official_only']; + } + + if (requestParameters['event_types'] != null) { + queryParameters['event_types'] = requestParameters['event_types']; + } + + if (requestParameters['category_ids'] != null) { + queryParameters['category_ids'] = requestParameters['category_ids']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/results/search_series`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getResultsSearchSeries(requestParameters: GetResultsSearchSeriesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsSearchSeriesRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getResultsSeasonResultsRaw(requestParameters: GetResultsSeasonResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getResultsSeasonResults().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['event_type'] != null) { + queryParameters['event_type'] = requestParameters['event_type']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/results/season_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getResultsSeasonResults(requestParameters: GetResultsSeasonResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getResultsSeasonResultsRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/SeasonApi.ts b/packages/api/client/fetch/src/apis/SeasonApi.ts new file mode 100644 index 0000000..6da7db3 --- /dev/null +++ b/packages/api/client/fetch/src/apis/SeasonApi.ts @@ -0,0 +1,237 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, + IracingEventType, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, + IracingEventTypeFromJSON, + IracingEventTypeToJSON, +} from '../models/index'; + +export interface GetSeasonListRequest { + season_year: number; + season_quarter: number; +} + +export interface GetSeasonRaceGuideRequest { + from?: Date; + include_end_after_from?: boolean; +} + +export interface GetSeasonSpectatorSubsessionIdsRequest { + event_types?: Array; +} + +export interface GetSeasonSpectatorSubsessionIdsDetailRequest { + event_types?: Array; + season_ids?: Array; +} + +/** + * + */ +export class SeasonApi extends runtime.BaseAPI { + + /** + */ + async getSeasonListRaw(requestParameters: GetSeasonListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_year'] == null) { + throw new runtime.RequiredError( + 'season_year', + 'Required parameter "season_year" was null or undefined when calling getSeasonList().' + ); + } + + if (requestParameters['season_quarter'] == null) { + throw new runtime.RequiredError( + 'season_quarter', + 'Required parameter "season_quarter" was null or undefined when calling getSeasonList().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_year'] != null) { + queryParameters['season_year'] = requestParameters['season_year']; + } + + if (requestParameters['season_quarter'] != null) { + queryParameters['season_quarter'] = requestParameters['season_quarter']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/season/list`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeasonList(requestParameters: GetSeasonListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonRaceGuideRaw(requestParameters: GetSeasonRaceGuideRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['from'] != null) { + queryParameters['from'] = requestParameters['from']; + } + + if (requestParameters['include_end_after_from'] != null) { + queryParameters['include_end_after_from'] = requestParameters['include_end_after_from']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/season/race_guide`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeasonRaceGuide(requestParameters: GetSeasonRaceGuideRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonRaceGuideRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonSpectatorSubsessionIdsRaw(requestParameters: GetSeasonSpectatorSubsessionIdsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['event_types'] != null) { + queryParameters['event_types'] = requestParameters['event_types']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/season/spectator_subsessionids`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeasonSpectatorSubsessionIds(requestParameters: GetSeasonSpectatorSubsessionIdsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonSpectatorSubsessionIdsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getSeasonSpectatorSubsessionIdsDetailRaw(requestParameters: GetSeasonSpectatorSubsessionIdsDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['event_types'] != null) { + queryParameters['event_types'] = requestParameters['event_types']; + } + + if (requestParameters['season_ids'] != null) { + queryParameters['season_ids'] = requestParameters['season_ids']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/season/spectator_subsessionids_detail`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeasonSpectatorSubsessionIdsDetail(requestParameters: GetSeasonSpectatorSubsessionIdsDetailRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeasonSpectatorSubsessionIdsDetailRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/SeriesApi.ts b/packages/api/client/fetch/src/apis/SeriesApi.ts new file mode 100644 index 0000000..cdbb629 --- /dev/null +++ b/packages/api/client/fetch/src/apis/SeriesApi.ts @@ -0,0 +1,344 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +export interface GetSeriesPastSeasonsRequest { + series_id: number; +} + +export interface GetSeriesSeasonListRequest { + include_series?: boolean; + season_year?: number; + season_quarter?: number; +} + +export interface GetSeriesSeasonScheduleRequest { + season_id: number; +} + +export interface GetSeriesSeasonsRequest { + include_series?: boolean; + season_year?: number; + season_quarter?: number; +} + +/** + * + */ +export class SeriesApi extends runtime.BaseAPI { + + /** + */ + async getSeriesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/series/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeries(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesAssetsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/series/assets`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeriesAssets(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesAssetsRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesPastSeasonsRaw(requestParameters: GetSeriesPastSeasonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['series_id'] == null) { + throw new runtime.RequiredError( + 'series_id', + 'Required parameter "series_id" was null or undefined when calling getSeriesPastSeasons().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['series_id'] != null) { + queryParameters['series_id'] = requestParameters['series_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/series/past_seasons`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeriesPastSeasons(requestParameters: GetSeriesPastSeasonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesPastSeasonsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesSeasonListRaw(requestParameters: GetSeriesSeasonListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['include_series'] != null) { + queryParameters['include_series'] = requestParameters['include_series']; + } + + if (requestParameters['season_year'] != null) { + queryParameters['season_year'] = requestParameters['season_year']; + } + + if (requestParameters['season_quarter'] != null) { + queryParameters['season_quarter'] = requestParameters['season_quarter']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/series/season_list`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeriesSeasonList(requestParameters: GetSeriesSeasonListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesSeasonListRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesSeasonScheduleRaw(requestParameters: GetSeriesSeasonScheduleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getSeriesSeasonSchedule().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/series/season_schedule`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeriesSeasonSchedule(requestParameters: GetSeriesSeasonScheduleRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesSeasonScheduleRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesSeasonsRaw(requestParameters: GetSeriesSeasonsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['include_series'] != null) { + queryParameters['include_series'] = requestParameters['include_series']; + } + + if (requestParameters['season_year'] != null) { + queryParameters['season_year'] = requestParameters['season_year']; + } + + if (requestParameters['season_quarter'] != null) { + queryParameters['season_quarter'] = requestParameters['season_quarter']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/series/seasons`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeriesSeasons(requestParameters: GetSeriesSeasonsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesSeasonsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getSeriesStatsSeriesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/series/stats_series`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getSeriesStatsSeries(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getSeriesStatsSeriesRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/StatsApi.ts b/packages/api/client/fetch/src/apis/StatsApi.ts new file mode 100644 index 0000000..5608a6c --- /dev/null +++ b/packages/api/client/fetch/src/apis/StatsApi.ts @@ -0,0 +1,903 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, + IracingDivision, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, + IracingDivisionFromJSON, + IracingDivisionToJSON, +} from '../models/index'; + +export interface GetStatsMemberBestsRequest { + cust_id?: number; + car_id?: number; +} + +export interface GetStatsMemberCareerRequest { + cust_id?: number; +} + +export interface GetStatsMemberDivisionRequest { + season_id: number; + event_type: GetStatsMemberDivisionEventTypeEnum; +} + +export interface GetStatsMemberRecapRequest { + cust_id?: number; + year?: GetStatsMemberRecapYearEnum; + season?: number; +} + +export interface GetStatsMemberRecentRacesRequest { + cust_id?: number; +} + +export interface GetStatsMemberSummaryRequest { + cust_id?: number; +} + +export interface GetStatsMemberYearlyRequest { + cust_id?: number; +} + +export interface GetStatsSeasonDriverStandingsRequest { + season_id: number; + car_class_id: number; + division?: IracingDivision; + race_week_num?: number; +} + +export interface GetStatsSeasonQualifyResultsRequest { + season_id: number; + car_class_id: number; + race_week_num: number; + division?: IracingDivision; +} + +export interface GetStatsSeasonSupersessionStandingsRequest { + season_id: number; + car_class_id: number; + division?: IracingDivision; + race_week_num?: number; +} + +export interface GetStatsSeasonTeamStandingsRequest { + season_id: number; + car_class_id: number; + race_week_num?: number; +} + +export interface GetStatsSeasonTimeTrialResultsRequest { + season_id: number; + car_class_id: number; + race_week_num: number; + division?: IracingDivision; +} + +export interface GetStatsSeasonTimeTrialStandingsRequest { + season_id: number; + car_class_id: number; + division?: IracingDivision; + race_week_num?: number; +} + +export interface GetStatsWorldRecordsRequest { + car_id: number; + track_id: number; + season_year?: number; + season_quarter?: number; +} + +/** + * + */ +export class StatsApi extends runtime.BaseAPI { + + /** + */ + async getStatsMemberBestsRaw(requestParameters: GetStatsMemberBestsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['car_id'] != null) { + queryParameters['car_id'] = requestParameters['car_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/member_bests`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberBests(requestParameters: GetStatsMemberBestsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberBestsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberCareerRaw(requestParameters: GetStatsMemberCareerRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/member_career`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberCareer(requestParameters: GetStatsMemberCareerRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberCareerRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberDivisionRaw(requestParameters: GetStatsMemberDivisionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getStatsMemberDivision().' + ); + } + + if (requestParameters['event_type'] == null) { + throw new runtime.RequiredError( + 'event_type', + 'Required parameter "event_type" was null or undefined when calling getStatsMemberDivision().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['event_type'] != null) { + queryParameters['event_type'] = requestParameters['event_type']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/member_division`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberDivision(requestParameters: GetStatsMemberDivisionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberDivisionRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberRecapRaw(requestParameters: GetStatsMemberRecapRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + if (requestParameters['year'] != null) { + queryParameters['year'] = requestParameters['year']; + } + + if (requestParameters['season'] != null) { + queryParameters['season'] = requestParameters['season']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/member_recap`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberRecap(requestParameters: GetStatsMemberRecapRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberRecapRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberRecentRacesRaw(requestParameters: GetStatsMemberRecentRacesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/member_recent_races`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberRecentRaces(requestParameters: GetStatsMemberRecentRacesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberRecentRacesRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberSummaryRaw(requestParameters: GetStatsMemberSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/member_summary`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberSummary(requestParameters: GetStatsMemberSummaryRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberSummaryRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsMemberYearlyRaw(requestParameters: GetStatsMemberYearlyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + if (requestParameters['cust_id'] != null) { + queryParameters['cust_id'] = requestParameters['cust_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/member_yearly`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsMemberYearly(requestParameters: GetStatsMemberYearlyRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsMemberYearlyRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonDriverStandingsRaw(requestParameters: GetStatsSeasonDriverStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getStatsSeasonDriverStandings().' + ); + } + + if (requestParameters['car_class_id'] == null) { + throw new runtime.RequiredError( + 'car_class_id', + 'Required parameter "car_class_id" was null or undefined when calling getStatsSeasonDriverStandings().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['car_class_id'] != null) { + queryParameters['car_class_id'] = requestParameters['car_class_id']; + } + + if (requestParameters['division'] != null) { + queryParameters['division'] = requestParameters['division']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/season_driver_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonDriverStandings(requestParameters: GetStatsSeasonDriverStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonDriverStandingsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonQualifyResultsRaw(requestParameters: GetStatsSeasonQualifyResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getStatsSeasonQualifyResults().' + ); + } + + if (requestParameters['car_class_id'] == null) { + throw new runtime.RequiredError( + 'car_class_id', + 'Required parameter "car_class_id" was null or undefined when calling getStatsSeasonQualifyResults().' + ); + } + + if (requestParameters['race_week_num'] == null) { + throw new runtime.RequiredError( + 'race_week_num', + 'Required parameter "race_week_num" was null or undefined when calling getStatsSeasonQualifyResults().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['car_class_id'] != null) { + queryParameters['car_class_id'] = requestParameters['car_class_id']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + if (requestParameters['division'] != null) { + queryParameters['division'] = requestParameters['division']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/season_qualify_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonQualifyResults(requestParameters: GetStatsSeasonQualifyResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonQualifyResultsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonSupersessionStandingsRaw(requestParameters: GetStatsSeasonSupersessionStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getStatsSeasonSupersessionStandings().' + ); + } + + if (requestParameters['car_class_id'] == null) { + throw new runtime.RequiredError( + 'car_class_id', + 'Required parameter "car_class_id" was null or undefined when calling getStatsSeasonSupersessionStandings().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['car_class_id'] != null) { + queryParameters['car_class_id'] = requestParameters['car_class_id']; + } + + if (requestParameters['division'] != null) { + queryParameters['division'] = requestParameters['division']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/season_supersession_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonSupersessionStandings(requestParameters: GetStatsSeasonSupersessionStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonSupersessionStandingsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonTeamStandingsRaw(requestParameters: GetStatsSeasonTeamStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getStatsSeasonTeamStandings().' + ); + } + + if (requestParameters['car_class_id'] == null) { + throw new runtime.RequiredError( + 'car_class_id', + 'Required parameter "car_class_id" was null or undefined when calling getStatsSeasonTeamStandings().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['car_class_id'] != null) { + queryParameters['car_class_id'] = requestParameters['car_class_id']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/season_team_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonTeamStandings(requestParameters: GetStatsSeasonTeamStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonTeamStandingsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonTimeTrialResultsRaw(requestParameters: GetStatsSeasonTimeTrialResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getStatsSeasonTimeTrialResults().' + ); + } + + if (requestParameters['car_class_id'] == null) { + throw new runtime.RequiredError( + 'car_class_id', + 'Required parameter "car_class_id" was null or undefined when calling getStatsSeasonTimeTrialResults().' + ); + } + + if (requestParameters['race_week_num'] == null) { + throw new runtime.RequiredError( + 'race_week_num', + 'Required parameter "race_week_num" was null or undefined when calling getStatsSeasonTimeTrialResults().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['car_class_id'] != null) { + queryParameters['car_class_id'] = requestParameters['car_class_id']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + if (requestParameters['division'] != null) { + queryParameters['division'] = requestParameters['division']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/season_time_trial_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonTimeTrialResults(requestParameters: GetStatsSeasonTimeTrialResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonTimeTrialResultsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsSeasonTimeTrialStandingsRaw(requestParameters: GetStatsSeasonTimeTrialStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['season_id'] == null) { + throw new runtime.RequiredError( + 'season_id', + 'Required parameter "season_id" was null or undefined when calling getStatsSeasonTimeTrialStandings().' + ); + } + + if (requestParameters['car_class_id'] == null) { + throw new runtime.RequiredError( + 'car_class_id', + 'Required parameter "car_class_id" was null or undefined when calling getStatsSeasonTimeTrialStandings().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['season_id'] != null) { + queryParameters['season_id'] = requestParameters['season_id']; + } + + if (requestParameters['car_class_id'] != null) { + queryParameters['car_class_id'] = requestParameters['car_class_id']; + } + + if (requestParameters['division'] != null) { + queryParameters['division'] = requestParameters['division']; + } + + if (requestParameters['race_week_num'] != null) { + queryParameters['race_week_num'] = requestParameters['race_week_num']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/season_time_trial_standings`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsSeasonTimeTrialStandings(requestParameters: GetStatsSeasonTimeTrialStandingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsSeasonTimeTrialStandingsRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getStatsWorldRecordsRaw(requestParameters: GetStatsWorldRecordsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['car_id'] == null) { + throw new runtime.RequiredError( + 'car_id', + 'Required parameter "car_id" was null or undefined when calling getStatsWorldRecords().' + ); + } + + if (requestParameters['track_id'] == null) { + throw new runtime.RequiredError( + 'track_id', + 'Required parameter "track_id" was null or undefined when calling getStatsWorldRecords().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['car_id'] != null) { + queryParameters['car_id'] = requestParameters['car_id']; + } + + if (requestParameters['track_id'] != null) { + queryParameters['track_id'] = requestParameters['track_id']; + } + + if (requestParameters['season_year'] != null) { + queryParameters['season_year'] = requestParameters['season_year']; + } + + if (requestParameters['season_quarter'] != null) { + queryParameters['season_quarter'] = requestParameters['season_quarter']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/stats/world_records`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getStatsWorldRecords(requestParameters: GetStatsWorldRecordsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getStatsWorldRecordsRaw(requestParameters, initOverrides); + return await response.value(); + } + +} + +/** + * @export + */ +export const GetStatsMemberDivisionEventTypeEnum = { + NUMBER_4: 4, + NUMBER_5: 5 +} as const; +export type GetStatsMemberDivisionEventTypeEnum = typeof GetStatsMemberDivisionEventTypeEnum[keyof typeof GetStatsMemberDivisionEventTypeEnum]; +/** + * @export + */ +export const GetStatsMemberRecapYearEnum = { + NUMBER_1: 1, + NUMBER_2: 2, + NUMBER_3: 3, + NUMBER_4: 4 +} as const; +export type GetStatsMemberRecapYearEnum = typeof GetStatsMemberRecapYearEnum[keyof typeof GetStatsMemberRecapYearEnum]; diff --git a/packages/api/client/fetch/src/apis/TeamApi.ts b/packages/api/client/fetch/src/apis/TeamApi.ts new file mode 100644 index 0000000..a0b2854 --- /dev/null +++ b/packages/api/client/fetch/src/apis/TeamApi.ts @@ -0,0 +1,123 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +export interface GetTeamRequest { + team_id: number; + include_licenses?: boolean; +} + +/** + * + */ +export class TeamApi extends runtime.BaseAPI { + + /** + */ + async getTeamRaw(requestParameters: GetTeamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['team_id'] == null) { + throw new runtime.RequiredError( + 'team_id', + 'Required parameter "team_id" was null or undefined when calling getTeam().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['team_id'] != null) { + queryParameters['team_id'] = requestParameters['team_id']; + } + + if (requestParameters['include_licenses'] != null) { + queryParameters['include_licenses'] = requestParameters['include_licenses']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/team/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getTeam(requestParameters: GetTeamRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTeamRaw(requestParameters, initOverrides); + return await response.value(); + } + + /** + */ + async getTeamMembershipRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/team/membership`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getTeamMembership(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTeamMembershipRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/TimeAttackApi.ts b/packages/api/client/fetch/src/apis/TimeAttackApi.ts new file mode 100644 index 0000000..f234b5c --- /dev/null +++ b/packages/api/client/fetch/src/apis/TimeAttackApi.ts @@ -0,0 +1,83 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +export interface GetTimeAttackMemberSeasonResultsRequest { + ta_comp_season_id: number; +} + +/** + * + */ +export class TimeAttackApi extends runtime.BaseAPI { + + /** + */ + async getTimeAttackMemberSeasonResultsRaw(requestParameters: GetTimeAttackMemberSeasonResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['ta_comp_season_id'] == null) { + throw new runtime.RequiredError( + 'ta_comp_season_id', + 'Required parameter "ta_comp_season_id" was null or undefined when calling getTimeAttackMemberSeasonResults().' + ); + } + + const queryParameters: any = {}; + + if (requestParameters['ta_comp_season_id'] != null) { + queryParameters['ta_comp_season_id'] = requestParameters['ta_comp_season_id']; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/time_attack/member_season_results`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getTimeAttackMemberSeasonResults(requestParameters: GetTimeAttackMemberSeasonResultsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTimeAttackMemberSeasonResultsRaw(requestParameters, initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/TrackApi.ts b/packages/api/client/fetch/src/apis/TrackApi.ts new file mode 100644 index 0000000..39692df --- /dev/null +++ b/packages/api/client/fetch/src/apis/TrackApi.ts @@ -0,0 +1,103 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingAPIResponse, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingAPIResponseFromJSON, + IracingAPIResponseToJSON, +} from '../models/index'; + +/** + * + */ +export class TrackApi extends runtime.BaseAPI { + + /** + */ + async getTrackRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/track/get`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getTrack(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTrackRaw(initOverrides); + return await response.value(); + } + + /** + */ + async getTrackAssetsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/data/track/assets`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingAPIResponseFromJSON(jsonValue)); + } + + /** + */ + async getTrackAssets(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.getTrackAssetsRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/api/client/fetch/src/apis/index.ts b/packages/api/client/fetch/src/apis/index.ts new file mode 100644 index 0000000..2bd41c4 --- /dev/null +++ b/packages/api/client/fetch/src/apis/index.ts @@ -0,0 +1,19 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './AuthApi'; +export * from './CarApi'; +export * from './CarclassApi'; +export * from './ConstantsApi'; +export * from './DocApi'; +export * from './DriverStatsApi'; +export * from './HostedApi'; +export * from './LeagueApi'; +export * from './LookupApi'; +export * from './MemberApi'; +export * from './ResultsApi'; +export * from './SeasonApi'; +export * from './SeriesApi'; +export * from './StatsApi'; +export * from './TeamApi'; +export * from './TimeAttackApi'; +export * from './TrackApi'; diff --git a/packages/api/client/fetch/src/index.ts b/packages/api/client/fetch/src/index.ts new file mode 100644 index 0000000..bebe8bb --- /dev/null +++ b/packages/api/client/fetch/src/index.ts @@ -0,0 +1,5 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './runtime'; +export * from './apis/index'; +export * from './models/index'; diff --git a/packages/api/client/fetch/src/models/ErrorResponse.ts b/packages/api/client/fetch/src/models/ErrorResponse.ts new file mode 100644 index 0000000..0fd38ec --- /dev/null +++ b/packages/api/client/fetch/src/models/ErrorResponse.ts @@ -0,0 +1,82 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface ErrorResponse + */ +export interface ErrorResponse { + /** + * + * @type {string} + * @memberof ErrorResponse + */ + error: string; + /** + * + * @type {string} + * @memberof ErrorResponse + */ + message?: string; + /** + * + * @type {string} + * @memberof ErrorResponse + */ + note?: string; +} + +/** + * Check if a given object implements the ErrorResponse interface. + */ +export function instanceOfErrorResponse(value: object): value is ErrorResponse { + if (!('error' in value) || value['error'] === undefined) return false; + return true; +} + +export function ErrorResponseFromJSON(json: any): ErrorResponse { + return ErrorResponseFromJSONTyped(json, false); +} + +export function ErrorResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ErrorResponse { + if (json == null) { + return json; + } + return { + + 'error': json['error'], + 'message': json['message'] == null ? undefined : json['message'], + 'note': json['note'] == null ? undefined : json['note'], + }; +} + +export function ErrorResponseToJSON(json: any): ErrorResponse { + return ErrorResponseToJSONTyped(json, false); +} + +export function ErrorResponseToJSONTyped(value?: ErrorResponse | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'error': value['error'], + 'message': value['message'], + 'note': value['note'], + }; +} + diff --git a/packages/api/client/fetch/src/models/IracingAPIResponse.ts b/packages/api/client/fetch/src/models/IracingAPIResponse.ts new file mode 100644 index 0000000..d0e29f5 --- /dev/null +++ b/packages/api/client/fetch/src/models/IracingAPIResponse.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * Response from iRacing `/data` API. + * @export + * @interface IracingAPIResponse + */ +export interface IracingAPIResponse { + /** + * A link to the cached data + * @type {string} + * @memberof IracingAPIResponse + */ + link: string; + /** + * + * @type {Date} + * @memberof IracingAPIResponse + */ + expires: Date; +} + +/** + * Check if a given object implements the IracingAPIResponse interface. + */ +export function instanceOfIracingAPIResponse(value: object): value is IracingAPIResponse { + if (!('link' in value) || value['link'] === undefined) return false; + if (!('expires' in value) || value['expires'] === undefined) return false; + return true; +} + +export function IracingAPIResponseFromJSON(json: any): IracingAPIResponse { + return IracingAPIResponseFromJSONTyped(json, false); +} + +export function IracingAPIResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): IracingAPIResponse { + if (json == null) { + return json; + } + return { + + 'link': json['link'], + 'expires': (new Date(json['expires'])), + }; +} + +export function IracingAPIResponseToJSON(json: any): IracingAPIResponse { + return IracingAPIResponseToJSONTyped(json, false); +} + +export function IracingAPIResponseToJSONTyped(value?: IracingAPIResponse | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'link': value['link'], + 'expires': value['expires'].toISOString(), + }; +} + diff --git a/packages/api/client/fetch/src/models/IracingCategory.ts b/packages/api/client/fetch/src/models/IracingCategory.ts new file mode 100644 index 0000000..15a8428 --- /dev/null +++ b/packages/api/client/fetch/src/models/IracingCategory.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * Racing category. + * @export + */ +export const IracingCategory = { + /** + * Oval discipline + */ + Oval: 'oval', + /** + * Road discipline. Legacy, use `sports_car` or `formula_car` instead. + */ + Road: 'road', + /** + * Dirt road discipline. + */ + DirtRoad: 'dirt_road', + /** + * Dirt oval discipline. + */ + DirtOval: 'dirt_oval', + /** + * Sports car discipline. + */ + SportsCar: 'sports_car', + /** + * Formula car discipline. + */ + FormulaCar: 'formula_car' +} as const; +export type IracingCategory = typeof IracingCategory[keyof typeof IracingCategory]; + + +export function instanceOfIracingCategory(value: any): boolean { + for (const key in IracingCategory) { + if (Object.prototype.hasOwnProperty.call(IracingCategory, key)) { + if (IracingCategory[key as keyof typeof IracingCategory] === value) { + return true; + } + } + } + return false; +} + +export function IracingCategoryFromJSON(json: any): IracingCategory { + return IracingCategoryFromJSONTyped(json, false); +} + +export function IracingCategoryFromJSONTyped(json: any, ignoreDiscriminator: boolean): IracingCategory { + return json as IracingCategory; +} + +export function IracingCategoryToJSON(value?: IracingCategory | null): any { + return value as any; +} + +export function IracingCategoryToJSONTyped(value: any, ignoreDiscriminator: boolean): IracingCategory { + return value as IracingCategory; +} + diff --git a/packages/api/client/fetch/src/models/IracingDivision.ts b/packages/api/client/fetch/src/models/IracingDivision.ts new file mode 100644 index 0000000..024b278 --- /dev/null +++ b/packages/api/client/fetch/src/models/IracingDivision.ts @@ -0,0 +1,95 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * iRacing Divisions. Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. + * @export + */ +export const IracingDivision = { + /** + * Division 1 + */ + NUMBER_0: 0, + /** + * Division 2 + */ + NUMBER_1: 1, + /** + * Division 3 + */ + NUMBER_2: 2, + /** + * Division 4 + */ + NUMBER_3: 3, + /** + * Division 5 + */ + NUMBER_4: 4, + /** + * Division 6 + */ + NUMBER_5: 5, + /** + * Division 7 + */ + NUMBER_6: 6, + /** + * Division 8 + */ + NUMBER_7: 7, + /** + * Division 9 + */ + NUMBER_8: 8, + /** + * Division 10 + */ + NUMBER_9: 9, + /** + * Rookie + */ + NUMBER_10: 10 +} as const; +export type IracingDivision = typeof IracingDivision[keyof typeof IracingDivision]; + + +export function instanceOfIracingDivision(value: any): boolean { + for (const key in IracingDivision) { + if (Object.prototype.hasOwnProperty.call(IracingDivision, key)) { + if (IracingDivision[key as keyof typeof IracingDivision] === value) { + return true; + } + } + } + return false; +} + +export function IracingDivisionFromJSON(json: any): IracingDivision { + return IracingDivisionFromJSONTyped(json, false); +} + +export function IracingDivisionFromJSONTyped(json: any, ignoreDiscriminator: boolean): IracingDivision { + return json as IracingDivision; +} + +export function IracingDivisionToJSON(value?: IracingDivision | null): any { + return value as any; +} + +export function IracingDivisionToJSONTyped(value: any, ignoreDiscriminator: boolean): IracingDivision { + return value as IracingDivision; +} + diff --git a/packages/api/client/fetch/src/models/IracingEventType.ts b/packages/api/client/fetch/src/models/IracingEventType.ts new file mode 100644 index 0000000..f3d76e1 --- /dev/null +++ b/packages/api/client/fetch/src/models/IracingEventType.ts @@ -0,0 +1,67 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * iRacing Event Type + * @export + */ +export const IracingEventType = { + /** + * Practice + */ + NUMBER_2: 2, + /** + * Qualifying + */ + NUMBER_3: 3, + /** + * Time trial + */ + NUMBER_4: 4, + /** + * Race + */ + NUMBER_5: 5 +} as const; +export type IracingEventType = typeof IracingEventType[keyof typeof IracingEventType]; + + +export function instanceOfIracingEventType(value: any): boolean { + for (const key in IracingEventType) { + if (Object.prototype.hasOwnProperty.call(IracingEventType, key)) { + if (IracingEventType[key as keyof typeof IracingEventType] === value) { + return true; + } + } + } + return false; +} + +export function IracingEventTypeFromJSON(json: any): IracingEventType { + return IracingEventTypeFromJSONTyped(json, false); +} + +export function IracingEventTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): IracingEventType { + return json as IracingEventType; +} + +export function IracingEventTypeToJSON(value?: IracingEventType | null): any { + return value as any; +} + +export function IracingEventTypeToJSONTyped(value: any, ignoreDiscriminator: boolean): IracingEventType { + return value as IracingEventType; +} + diff --git a/packages/api/client/fetch/src/models/IracingServiceMethodDocs.ts b/packages/api/client/fetch/src/models/IracingServiceMethodDocs.ts new file mode 100644 index 0000000..442c999 --- /dev/null +++ b/packages/api/client/fetch/src/models/IracingServiceMethodDocs.ts @@ -0,0 +1,91 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { IracingServiceMethodParametersDocs } from './IracingServiceMethodParametersDocs'; +import { + IracingServiceMethodParametersDocsFromJSON, + IracingServiceMethodParametersDocsFromJSONTyped, + IracingServiceMethodParametersDocsToJSON, + IracingServiceMethodParametersDocsToJSONTyped, +} from './IracingServiceMethodParametersDocs'; + +/** + * An iRacing API Service Method object. + * @export + * @interface IracingServiceMethodDocs + */ +export interface IracingServiceMethodDocs { + /** + * + * @type {string} + * @memberof IracingServiceMethodDocs + */ + link: string; + /** + * + * @type {{ [key: string]: IracingServiceMethodParametersDocs; }} + * @memberof IracingServiceMethodDocs + */ + parameters: { [key: string]: IracingServiceMethodParametersDocs; }; + /** + * + * @type {number} + * @memberof IracingServiceMethodDocs + */ + expirationSeconds?: number; +} + +/** + * Check if a given object implements the IracingServiceMethodDocs interface. + */ +export function instanceOfIracingServiceMethodDocs(value: object): value is IracingServiceMethodDocs { + if (!('link' in value) || value['link'] === undefined) return false; + if (!('parameters' in value) || value['parameters'] === undefined) return false; + return true; +} + +export function IracingServiceMethodDocsFromJSON(json: any): IracingServiceMethodDocs { + return IracingServiceMethodDocsFromJSONTyped(json, false); +} + +export function IracingServiceMethodDocsFromJSONTyped(json: any, ignoreDiscriminator: boolean): IracingServiceMethodDocs { + if (json == null) { + return json; + } + return { + + 'link': json['link'], + 'parameters': (mapValues(json['parameters'], IracingServiceMethodParametersDocsFromJSON)), + 'expirationSeconds': json['expirationSeconds'] == null ? undefined : json['expirationSeconds'], + }; +} + +export function IracingServiceMethodDocsToJSON(json: any): IracingServiceMethodDocs { + return IracingServiceMethodDocsToJSONTyped(json, false); +} + +export function IracingServiceMethodDocsToJSONTyped(value?: IracingServiceMethodDocs | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'link': value['link'], + 'parameters': (mapValues(value['parameters'], IracingServiceMethodParametersDocsToJSON)), + 'expirationSeconds': value['expirationSeconds'], + }; +} + diff --git a/packages/api/client/fetch/src/models/IracingServiceMethodParametersDocs.ts b/packages/api/client/fetch/src/models/IracingServiceMethodParametersDocs.ts new file mode 100644 index 0000000..baf1afb --- /dev/null +++ b/packages/api/client/fetch/src/models/IracingServiceMethodParametersDocs.ts @@ -0,0 +1,82 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * An iRacing API Service Method Parameters object. + * @export + * @interface IracingServiceMethodParametersDocs + */ +export interface IracingServiceMethodParametersDocs { + /** + * + * @type {string} + * @memberof IracingServiceMethodParametersDocs + */ + type: string; + /** + * + * @type {string} + * @memberof IracingServiceMethodParametersDocs + */ + note?: string; + /** + * + * @type {boolean} + * @memberof IracingServiceMethodParametersDocs + */ + required?: boolean; +} + +/** + * Check if a given object implements the IracingServiceMethodParametersDocs interface. + */ +export function instanceOfIracingServiceMethodParametersDocs(value: object): value is IracingServiceMethodParametersDocs { + if (!('type' in value) || value['type'] === undefined) return false; + return true; +} + +export function IracingServiceMethodParametersDocsFromJSON(json: any): IracingServiceMethodParametersDocs { + return IracingServiceMethodParametersDocsFromJSONTyped(json, false); +} + +export function IracingServiceMethodParametersDocsFromJSONTyped(json: any, ignoreDiscriminator: boolean): IracingServiceMethodParametersDocs { + if (json == null) { + return json; + } + return { + + 'type': json['type'], + 'note': json['note'] == null ? undefined : json['note'], + 'required': json['required'] == null ? undefined : json['required'], + }; +} + +export function IracingServiceMethodParametersDocsToJSON(json: any): IracingServiceMethodParametersDocs { + return IracingServiceMethodParametersDocsToJSONTyped(json, false); +} + +export function IracingServiceMethodParametersDocsToJSONTyped(value?: IracingServiceMethodParametersDocs | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'type': value['type'], + 'note': value['note'], + 'required': value['required'], + }; +} + diff --git a/packages/api/client/fetch/src/models/PostAuthRequest.ts b/packages/api/client/fetch/src/models/PostAuthRequest.ts new file mode 100644 index 0000000..9e40743 --- /dev/null +++ b/packages/api/client/fetch/src/models/PostAuthRequest.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface PostAuthRequest + */ +export interface PostAuthRequest { + /** + * + * @type {string} + * @memberof PostAuthRequest + */ + email: string; + /** + * + * @type {string} + * @memberof PostAuthRequest + */ + password: string; +} + +/** + * Check if a given object implements the PostAuthRequest interface. + */ +export function instanceOfPostAuthRequest(value: object): value is PostAuthRequest { + if (!('email' in value) || value['email'] === undefined) return false; + if (!('password' in value) || value['password'] === undefined) return false; + return true; +} + +export function PostAuthRequestFromJSON(json: any): PostAuthRequest { + return PostAuthRequestFromJSONTyped(json, false); +} + +export function PostAuthRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): PostAuthRequest { + if (json == null) { + return json; + } + return { + + 'email': json['email'], + 'password': json['password'], + }; +} + +export function PostAuthRequestToJSON(json: any): PostAuthRequest { + return PostAuthRequestToJSONTyped(json, false); +} + +export function PostAuthRequestToJSONTyped(value?: PostAuthRequest | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'email': value['email'], + 'password': value['password'], + }; +} + diff --git a/packages/api/client/fetch/src/models/index.ts b/packages/api/client/fetch/src/models/index.ts new file mode 100644 index 0000000..db46696 --- /dev/null +++ b/packages/api/client/fetch/src/models/index.ts @@ -0,0 +1,10 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './ErrorResponse'; +export * from './IracingAPIResponse'; +export * from './IracingCategory'; +export * from './IracingDivision'; +export * from './IracingEventType'; +export * from './IracingServiceMethodDocs'; +export * from './IracingServiceMethodParametersDocs'; +export * from './PostAuthRequest'; diff --git a/packages/api/client/fetch/src/runtime.ts b/packages/api/client/fetch/src/runtime.ts new file mode 100644 index 0000000..1bed172 --- /dev/null +++ b/packages/api/client/fetch/src/runtime.ts @@ -0,0 +1,432 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing `/data` API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export const BASE_PATH = "https://members-ng.iracing.com".replace(/\/+$/, ""); + +export interface ConfigurationParameters { + basePath?: string; // override base path + fetchApi?: FetchAPI; // override for fetch implementation + middleware?: Middleware[]; // middleware to apply before/after fetch requests + queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings + username?: string; // parameter for basic security + password?: string; // parameter for basic security + apiKey?: string | Promise | ((name: string) => string | Promise); // parameter for apiKey security + accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string | Promise); // parameter for oauth2 security + headers?: HTTPHeaders; //header params we want to use on every request + credentials?: RequestCredentials; //value for the credentials param we want to use on each request +} + +export class Configuration { + constructor(private configuration: ConfigurationParameters = {}) {} + + set config(configuration: Configuration) { + this.configuration = configuration; + } + + get basePath(): string { + return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH; + } + + get fetchApi(): FetchAPI | undefined { + return this.configuration.fetchApi; + } + + get middleware(): Middleware[] { + return this.configuration.middleware || []; + } + + get queryParamsStringify(): (params: HTTPQuery) => string { + return this.configuration.queryParamsStringify || querystring; + } + + get username(): string | undefined { + return this.configuration.username; + } + + get password(): string | undefined { + return this.configuration.password; + } + + get apiKey(): ((name: string) => string | Promise) | undefined { + const apiKey = this.configuration.apiKey; + if (apiKey) { + return typeof apiKey === 'function' ? apiKey : () => apiKey; + } + return undefined; + } + + get accessToken(): ((name?: string, scopes?: string[]) => string | Promise) | undefined { + const accessToken = this.configuration.accessToken; + if (accessToken) { + return typeof accessToken === 'function' ? accessToken : async () => accessToken; + } + return undefined; + } + + get headers(): HTTPHeaders | undefined { + return this.configuration.headers; + } + + get credentials(): RequestCredentials | undefined { + return this.configuration.credentials; + } +} + +export const DefaultConfig = new Configuration(); + +/** + * This is the base class for all generated API classes. + */ +export class BaseAPI { + + private static readonly jsonRegex = new RegExp('^(:?application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(:?;.*)?$', 'i'); + private middleware: Middleware[]; + + constructor(protected configuration = DefaultConfig) { + this.middleware = configuration.middleware; + } + + withMiddleware(this: T, ...middlewares: Middleware[]) { + const next = this.clone(); + next.middleware = next.middleware.concat(...middlewares); + return next; + } + + withPreMiddleware(this: T, ...preMiddlewares: Array) { + const middlewares = preMiddlewares.map((pre) => ({ pre })); + return this.withMiddleware(...middlewares); + } + + withPostMiddleware(this: T, ...postMiddlewares: Array) { + const middlewares = postMiddlewares.map((post) => ({ post })); + return this.withMiddleware(...middlewares); + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + protected isJsonMime(mime: string | null | undefined): boolean { + if (!mime) { + return false; + } + return BaseAPI.jsonRegex.test(mime); + } + + protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise { + const { url, init } = await this.createFetchParams(context, initOverrides); + const response = await this.fetchApi(url, init); + if (response && (response.status >= 200 && response.status < 300)) { + return response; + } + throw new ResponseError(response, 'Response returned an error code'); + } + + private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) { + let url = this.configuration.basePath + context.path; + if (context.query !== undefined && Object.keys(context.query).length !== 0) { + // only add the querystring to the URL if there are query parameters. + // this is done to avoid urls ending with a "?" character which buggy webservers + // do not handle correctly sometimes. + url += '?' + this.configuration.queryParamsStringify(context.query); + } + + const headers = Object.assign({}, this.configuration.headers, context.headers); + Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {}); + + const initOverrideFn = + typeof initOverrides === "function" + ? initOverrides + : async () => initOverrides; + + const initParams = { + method: context.method, + headers, + body: context.body, + credentials: this.configuration.credentials, + }; + + const overriddenInit: RequestInit = { + ...initParams, + ...(await initOverrideFn({ + init: initParams, + context, + })) + }; + + let body: any; + if (isFormData(overriddenInit.body) + || (overriddenInit.body instanceof URLSearchParams) + || isBlob(overriddenInit.body)) { + body = overriddenInit.body; + } else if (this.isJsonMime(headers['Content-Type'])) { + body = JSON.stringify(overriddenInit.body); + } else { + body = overriddenInit.body; + } + + const init: RequestInit = { + ...overriddenInit, + body + }; + + return { url, init }; + } + + private fetchApi = async (url: string, init: RequestInit) => { + let fetchParams = { url, init }; + for (const middleware of this.middleware) { + if (middleware.pre) { + fetchParams = await middleware.pre({ + fetch: this.fetchApi, + ...fetchParams, + }) || fetchParams; + } + } + let response: Response | undefined = undefined; + try { + response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init); + } catch (e) { + for (const middleware of this.middleware) { + if (middleware.onError) { + response = await middleware.onError({ + fetch: this.fetchApi, + url: fetchParams.url, + init: fetchParams.init, + error: e, + response: response ? response.clone() : undefined, + }) || response; + } + } + if (response === undefined) { + if (e instanceof Error) { + throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response'); + } else { + throw e; + } + } + } + for (const middleware of this.middleware) { + if (middleware.post) { + response = await middleware.post({ + fetch: this.fetchApi, + url: fetchParams.url, + init: fetchParams.init, + response: response.clone(), + }) || response; + } + } + return response; + } + + /** + * Create a shallow clone of `this` by constructing a new instance + * and then shallow cloning data members. + */ + private clone(this: T): T { + const constructor = this.constructor as any; + const next = new constructor(this.configuration); + next.middleware = this.middleware.slice(); + return next; + } +}; + +function isBlob(value: any): value is Blob { + return typeof Blob !== 'undefined' && value instanceof Blob; +} + +function isFormData(value: any): value is FormData { + return typeof FormData !== "undefined" && value instanceof FormData; +} + +export class ResponseError extends Error { + override name: "ResponseError" = "ResponseError"; + constructor(public response: Response, msg?: string) { + super(msg); + } +} + +export class FetchError extends Error { + override name: "FetchError" = "FetchError"; + constructor(public cause: Error, msg?: string) { + super(msg); + } +} + +export class RequiredError extends Error { + override name: "RequiredError" = "RequiredError"; + constructor(public field: string, msg?: string) { + super(msg); + } +} + +export const COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", +}; + +export type FetchAPI = WindowOrWorkerGlobalScope['fetch']; + +export type Json = any; +export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD'; +export type HTTPHeaders = { [key: string]: string }; +export type HTTPQuery = { [key: string]: string | number | null | boolean | Array | Set | HTTPQuery }; +export type HTTPBody = Json | FormData | URLSearchParams; +export type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody }; +export type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original'; + +export type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise + +export interface FetchParams { + url: string; + init: RequestInit; +} + +export interface RequestOpts { + path: string; + method: HTTPMethod; + headers: HTTPHeaders; + query?: HTTPQuery; + body?: HTTPBody; +} + +export function querystring(params: HTTPQuery, prefix: string = ''): string { + return Object.keys(params) + .map(key => querystringSingleKey(key, params[key], prefix)) + .filter(part => part.length > 0) + .join('&'); +} + +function querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array | Set | HTTPQuery, keyPrefix: string = ''): string { + const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key); + if (value instanceof Array) { + const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue))) + .join(`&${encodeURIComponent(fullKey)}=`); + return `${encodeURIComponent(fullKey)}=${multiValue}`; + } + if (value instanceof Set) { + const valueAsArray = Array.from(value); + return querystringSingleKey(key, valueAsArray, keyPrefix); + } + if (value instanceof Date) { + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`; + } + if (value instanceof Object) { + return querystring(value as HTTPQuery, fullKey); + } + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`; +} + +export function exists(json: any, key: string) { + const value = json[key]; + return value !== null && value !== undefined; +} + +export function mapValues(data: any, fn: (item: any) => any) { + const result: { [key: string]: any } = {}; + for (const key of Object.keys(data)) { + result[key] = fn(data[key]); + } + return result; +} + +export function canConsumeForm(consumes: Consume[]): boolean { + for (const consume of consumes) { + if ('multipart/form-data' === consume.contentType) { + return true; + } + } + return false; +} + +export interface Consume { + contentType: string; +} + +export interface RequestContext { + fetch: FetchAPI; + url: string; + init: RequestInit; +} + +export interface ResponseContext { + fetch: FetchAPI; + url: string; + init: RequestInit; + response: Response; +} + +export interface ErrorContext { + fetch: FetchAPI; + url: string; + init: RequestInit; + error: unknown; + response?: Response; +} + +export interface Middleware { + pre?(context: RequestContext): Promise; + post?(context: ResponseContext): Promise; + onError?(context: ErrorContext): Promise; +} + +export interface ApiResponse { + raw: Response; + value(): Promise; +} + +export interface ResponseTransformer { + (json: any): T; +} + +export class JSONApiResponse { + constructor(public raw: Response, private transformer: ResponseTransformer = (jsonValue: any) => jsonValue) {} + + async value(): Promise { + return this.transformer(await this.raw.json()); + } +} + +export class VoidApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return undefined; + } +} + +export class BlobApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return await this.raw.blob(); + }; +} + +export class TextApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return await this.raw.text(); + }; +} diff --git a/packages/api/client/fetch/tsconfig.json b/packages/api/client/fetch/tsconfig.json new file mode 100644 index 0000000..4567ec1 --- /dev/null +++ b/packages/api/client/fetch/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "declaration": true, + "target": "es5", + "module": "commonjs", + "moduleResolution": "node", + "outDir": "dist", + "lib": [ + "es6", + "dom" + ], + "typeRoots": [ + "node_modules/@types" + ] + }, + "exclude": [ + "dist", + "node_modules" + ] +} diff --git a/packages/api/doc/structure.json b/packages/api/doc/structure.json deleted file mode 100644 index 1b6d296..0000000 --- a/packages/api/doc/structure.json +++ /dev/null @@ -1,994 +0,0 @@ -{ - "car": { - "assets": { - "link": "https://members-ng.iracing.com/data/car/assets", - "note": [ - "image paths are relative to https://images-static.iracing.com/" - ], - "expirationSeconds": 900 - }, - "get": { - "link": "https://members-ng.iracing.com/data/car/get", - "expirationSeconds": 900 - } - }, - "carclass": { - "get": { - "link": "https://members-ng.iracing.com/data/carclass/get", - "expirationSeconds": 900 - } - }, - "constants": { - "categories": { - "link": "https://members-ng.iracing.com/data/constants/categories", - "note": "Constant; returned directly as an array of objects", - "expirationSeconds": 900 - }, - "divisions": { - "link": "https://members-ng.iracing.com/data/constants/divisions", - "note": "Constant; returned directly as an array of objects", - "expirationSeconds": 900 - }, - "event_types": { - "link": "https://members-ng.iracing.com/data/constants/event_types", - "note": "Constant; returned directly as an array of objects", - "expirationSeconds": 900 - } - }, - "driver_stats_by_category": { - "oval": { - "link": "https://members-ng.iracing.com/data/driver_stats_by_category/oval", - "expirationSeconds": 900 - }, - "sports_car": { - "link": "https://members-ng.iracing.com/data/driver_stats_by_category/sports_car", - "expirationSeconds": 900 - }, - "formula_car": { - "link": "https://members-ng.iracing.com/data/driver_stats_by_category/formula_car", - "expirationSeconds": 900 - }, - "road": { - "link": "https://members-ng.iracing.com/data/driver_stats_by_category/road", - "expirationSeconds": 900 - }, - "dirt_oval": { - "link": "https://members-ng.iracing.com/data/driver_stats_by_category/dirt_oval", - "expirationSeconds": 900 - }, - "dirt_road": { - "link": "https://members-ng.iracing.com/data/driver_stats_by_category/dirt_road", - "expirationSeconds": 900 - } - }, - "hosted": { - "combined_sessions": { - "link": "https://members-ng.iracing.com/data/hosted/combined_sessions", - "note": "Sessions that can be joined as a driver or spectator, and also includes non-league pending sessions for the user.", - "parameters": { - "package_id": { - "type": "number", - "note": "If set, return only sessions using this car or track package ID." - } - }, - "expirationSeconds": 60 - }, - "sessions": { - "link": "https://members-ng.iracing.com/data/hosted/sessions", - "note": "Sessions that can be joined as a driver. Without spectator and non-league pending sessions for the user.", - "expirationSeconds": 60 - } - }, - "league": { - "cust_league_sessions": { - "link": "https://members-ng.iracing.com/data/league/cust_league_sessions", - "parameters": { - "mine": { - "type": "boolean", - "note": "If true, return only sessions created by this user." - }, - "package_id": { - "type": "number", - "note": "If set, return only sessions using this car or track package ID." - } - }, - "expirationSeconds": 900 - }, - "directory": { - "link": "https://members-ng.iracing.com/data/league/directory", - "parameters": { - "search": { - "type": "string", - "note": "Will search against league name, description, owner, and league ID." - }, - "tag": { - "type": "string", - "note": "One or more tags, comma-separated." - }, - "restrict_to_member": { - "type": "boolean", - "note": "If true include only leagues for which customer is a member." - }, - "restrict_to_recruiting": { - "type": "boolean", - "note": "If true include only leagues which are recruiting." - }, - "restrict_to_friends": { - "type": "boolean", - "note": "If true include only leagues owned by a friend." - }, - "restrict_to_watched": { - "type": "boolean", - "note": "If true include only leagues owned by a watched member." - }, - "minimum_roster_count": { - "type": "number", - "note": "If set include leagues with at least this number of members." - }, - "maximum_roster_count": { - "type": "number", - "note": "If set include leagues with no more than this number of members." - }, - "lowerbound": { - "type": "number", - "note": "First row of results to return. Defaults to 1." - }, - "upperbound": { - "type": "number", - "note": "Last row of results to return. Defaults to lowerbound + 39." - }, - "sort": { - "type": "string", - "note": "One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance." - }, - "order": { - "type": "string", - "note": "One of asc or desc. Defaults to asc." - } - }, - "expirationSeconds": 900 - }, - "get": { - "link": "https://members-ng.iracing.com/data/league/get", - "parameters": { - "league_id": { - "type": "number", - "required": true - }, - "include_licenses": { - "type": "boolean", - "note": "For faster responses, only request when necessary." - } - }, - "expirationSeconds": 900 - }, - "get_points_systems": { - "link": "https://members-ng.iracing.com/data/league/get_points_systems", - "parameters": { - "league_id": { - "type": "number", - "required": true - }, - "season_id": { - "type": "number", - "note": "If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned." - } - }, - "expirationSeconds": 900 - }, - "membership": { - "link": "https://members-ng.iracing.com/data/league/membership", - "parameters": { - "cust_id": { - "type": "number", - "note": "If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned." - }, - "include_league": { - "type": "boolean" - } - }, - "expirationSeconds": 900 - }, - "roster": { - "link": "https://members-ng.iracing.com/data/league/roster", - "parameters": { - "league_id": { - "type": "number", - "required": true - }, - "include_licenses": { - "type": "boolean", - "note": "For faster responses, only request when necessary." - } - }, - "expirationSeconds": 900 - }, - "seasons": { - "link": "https://members-ng.iracing.com/data/league/seasons", - "parameters": { - "league_id": { - "type": "number", - "required": true - }, - "retired": { - "type": "boolean", - "note": "If true include seasons which are no longer active." - } - }, - "expirationSeconds": 900 - }, - "season_standings": { - "link": "https://members-ng.iracing.com/data/league/season_standings", - "parameters": { - "league_id": { - "type": "number", - "required": true - }, - "season_id": { - "type": "number", - "required": true - }, - "car_class_id": { - "type": "number" - }, - "car_id": { - "type": "number", - "note": "If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes." - } - }, - "expirationSeconds": 900 - }, - "season_sessions": { - "link": "https://members-ng.iracing.com/data/league/season_sessions", - "parameters": { - "league_id": { - "type": "number", - "required": true - }, - "season_id": { - "type": "number", - "required": true - }, - "results_only": { - "type": "boolean", - "note": "If true include only sessions for which results are available." - } - }, - "expirationSeconds": 900 - } - }, - "lookup": { - "countries": { - "link": "https://members-ng.iracing.com/data/lookup/countries", - "expirationSeconds": 900 - }, - "drivers": { - "link": "https://members-ng.iracing.com/data/lookup/drivers", - "parameters": { - "search_term": { - "type": "string", - "required": true, - "note": "A cust_id or partial name for which to search." - }, - "league_id": { - "type": "number", - "note": "Narrow the search to the roster of the given league." - } - }, - "expirationSeconds": 900 - }, - "flairs": { - "link": "https://members-ng.iracing.com/data/lookup/flairs", - "note": "Icons are from https://github.com/lipis/flag-icons/", - "expirationSeconds": 900 - }, - "get": { - "link": "https://members-ng.iracing.com/data/lookup/get", - "note": "?weather=weather_wind_speed_units&weather=weather_wind_speed_max&weather=weather_wind_speed_min&licenselevels=licenselevels", - "expirationSeconds": 900 - }, - "licenses": { - "link": "https://members-ng.iracing.com/data/lookup/licenses", - "expirationSeconds": 900 - } - }, - "member": { - "awards": { - "link": "https://members-ng.iracing.com/data/member/awards", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - } - }, - "expirationSeconds": 900 - }, - "award_instances": { - "link": "https://members-ng.iracing.com/data/member/award_instances", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - }, - "award_id": { - "type": "number", - "required": true - } - }, - "expirationSeconds": 900 - }, - "chart_data": { - "link": "https://members-ng.iracing.com/data/member/chart_data", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - }, - "category_id": { - "type": "number", - "required": true, - "note": "1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road" - }, - "chart_type": { - "type": "number", - "required": true, - "note": "1 - iRating; 2 - TT Rating; 3 - License/SR" - } - }, - "expirationSeconds": 900 - }, - "get": { - "link": "https://members-ng.iracing.com/data/member/get", - "parameters": { - "cust_ids": { - "type": "numbers", - "required": true, - "note": "?cust_ids=2,3,4" - }, - "include_licenses": { - "type": "boolean" - } - }, - "expirationSeconds": 900 - }, - "info": { - "link": "https://members-ng.iracing.com/data/member/info", - "note": "Always the authenticated member.", - "expirationSeconds": 900 - }, - "participation_credits": { - "link": "https://members-ng.iracing.com/data/member/participation_credits", - "note": "Always the authenticated member.", - "expirationSeconds": 900 - }, - "profile": { - "link": "https://members-ng.iracing.com/data/member/profile", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - } - }, - "expirationSeconds": 900 - } - }, - "results": { - "get": { - "link": "https://members-ng.iracing.com/data/results/get", - "note": "Get the results of a subsession, if authorized to view them. series_logo image paths are relative to https://images-static.iracing.com/img/logos/series/", - "parameters": { - "subsession_id": { - "type": "number", - "required": true - }, - "include_licenses": { - "type": "boolean" - } - }, - "expirationSeconds": 900 - }, - "event_log": { - "link": "https://members-ng.iracing.com/data/results/event_log", - "parameters": { - "subsession_id": { - "type": "number", - "required": true - }, - "simsession_number": { - "type": "number", - "required": true, - "note": "The main event is 0; the preceding event is -1, and so on." - } - }, - "expirationSeconds": 900 - }, - "lap_chart_data": { - "link": "https://members-ng.iracing.com/data/results/lap_chart_data", - "parameters": { - "subsession_id": { - "type": "number", - "required": true - }, - "simsession_number": { - "type": "number", - "required": true, - "note": "The main event is 0; the preceding event is -1, and so on." - } - }, - "expirationSeconds": 900 - }, - "lap_data": { - "link": "https://members-ng.iracing.com/data/results/lap_data", - "parameters": { - "subsession_id": { - "type": "number", - "required": true - }, - "simsession_number": { - "type": "number", - "required": true, - "note": "The main event is 0; the preceding event is -1, and so on." - }, - "cust_id": { - "type": "number", - "note": "Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included." - }, - "team_id": { - "type": "number", - "note": "Required if the subsession was a team event." - } - }, - "expirationSeconds": 900 - }, - "search_hosted": { - "link": "https://members-ng.iracing.com/data/results/search_hosted", - "note": "Hosted and league sessions. Maximum time frame of 90 days. Results split into one or more files with chunks of results. For scraping results the most effective approach is to keep track of the maximum end_time found during a search then make the subsequent call using that date/time as the finish_range_begin and skip any subsessions that are duplicated. Results are ordered by subsessionid which is a proxy for start time. Requires one of: start_range_begin, finish_range_begin. Requires one of: cust_id, team_id, host_cust_id, session_name.", - "parameters": { - "start_range_begin": { - "type": "string", - "note": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - "start_range_end": { - "type": "string", - "note": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." - }, - "finish_range_begin": { - "type": "string", - "note": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - "finish_range_end": { - "type": "string", - "note": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." - }, - "cust_id": { - "type": "number", - "note": "The participant's customer ID. Ignored if team_id is supplied." - }, - "team_id": { - "type": "number", - "note": "The team ID to search for. Takes priority over cust_id if both are supplied." - }, - "host_cust_id": { - "type": "number", - "note": "The host's customer ID." - }, - "session_name": { - "type": "string", - "note": "Part or all of the session's name." - }, - "league_id": { - "type": "number", - "note": "Include only results for the league with this ID." - }, - "league_season_id": { - "type": "number", - "note": "Include only results for the league season with this ID." - }, - "car_id": { - "type": "number", - "note": "One of the cars used by the session." - }, - "track_id": { - "type": "number", - "note": "The ID of the track used by the session." - }, - "category_ids": { - "type": "numbers", - "note": "Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" - } - }, - "expirationSeconds": 900 - }, - "search_series": { - "link": "https://members-ng.iracing.com/data/results/search_series", - "note": "Official series. Maximum time frame of 90 days. Results split into one or more files with chunks of results. For scraping results the most effective approach is to keep track of the maximum end_time found during a search then make the subsequent call using that date/time as the finish_range_begin and skip any subsessions that are duplicated. Results are ordered by subsessionid which is a proxy for start time but groups together multiple splits of a series when multiple series launch sessions at the same time. Requires at least one of: season_year and season_quarter, start_range_begin, finish_range_begin.", - "parameters": { - "season_year": { - "type": "number", - "note": "Required when using season_quarter." - }, - "season_quarter": { - "type": "number", - "note": "Required when using season_year." - }, - "start_range_begin": { - "type": "string", - "note": "Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - "start_range_end": { - "type": "string", - "note": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past." - }, - "finish_range_begin": { - "type": "string", - "note": "Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\"." - }, - "finish_range_end": { - "type": "string", - "note": "ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past." - }, - "cust_id": { - "type": "number", - "note": "Include only sessions in which this customer participated. Ignored if team_id is supplied." - }, - "team_id": { - "type": "number", - "note": "Include only sessions in which this team participated. Takes priority over cust_id if both are supplied." - }, - "series_id": { - "type": "number", - "note": "Include only sessions for series with this ID." - }, - "race_week_num": { - "type": "number", - "note": "Include only sessions with this race week number." - }, - "official_only": { - "type": "boolean", - "note": "If true, include only sessions earning championship points. Defaults to all." - }, - "event_types": { - "type": "numbers", - "note": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" - }, - "category_ids": { - "type": "numbers", - "note": "License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4" - } - }, - "expirationSeconds": 900 - }, - "season_results": { - "link": "https://members-ng.iracing.com/data/results/season_results", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "event_type": { - "type": "number", - "note": "Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race" - }, - "race_week_num": { - "type": "number", - "note": "The first race week of a season is 0." - } - }, - "expirationSeconds": 900 - } - }, - "season": { - "list": { - "link": "https://members-ng.iracing.com/data/season/list", - "parameters": { - "season_year": { - "type": "number", - "required": true - }, - "season_quarter": { - "type": "number", - "required": true - } - }, - "expirationSeconds": 900 - }, - "race_guide": { - "link": "https://members-ng.iracing.com/data/season/race_guide", - "parameters": { - "from": { - "type": "string", - "note": "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time." - }, - "include_end_after_from": { - "type": "boolean", - "note": "Include sessions which start before 'from' but end after." - } - }, - "expirationSeconds": 60 - }, - "spectator_subsessionids": { - "link": "https://members-ng.iracing.com/data/season/spectator_subsessionids", - "parameters": { - "event_types": { - "type": "numbers", - "note": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" - } - }, - "expirationSeconds": 60 - }, - "spectator_subsessionids_detail": { - "link": "https://members-ng.iracing.com/data/season/spectator_subsessionids_detail", - "parameters": { - "event_types": { - "type": "numbers", - "note": "Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5" - }, - "season_ids": { - "type": "numbers", - "note": "Seasons to include in the search. Defaults to all. ?season_ids=513,937" - } - }, - "expirationSeconds": 60 - } - }, - "series": { - "assets": { - "link": "https://members-ng.iracing.com/data/series/assets", - "note": [ - "image paths are relative to https://images-static.iracing.com/" - ], - "expirationSeconds": 900 - }, - "get": { - "link": "https://members-ng.iracing.com/data/series/get", - "expirationSeconds": 900 - }, - "past_seasons": { - "link": "https://members-ng.iracing.com/data/series/past_seasons", - "note": "Get all seasons for a series. Filter list by official:true for seasons with standings.", - "parameters": { - "series_id": { - "type": "number", - "required": true - } - }, - "expirationSeconds": 900 - }, - "seasons": { - "link": "https://members-ng.iracing.com/data/series/seasons", - "parameters": { - "include_series": { - "type": "boolean" - }, - "season_year": { - "type": "number", - "note": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." - }, - "season_quarter": { - "type": "number", - "note": "To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned." - } - }, - "expirationSeconds": 900 - }, - "season_list": { - "link": "https://members-ng.iracing.com/data/series/season_list", - "parameters": { - "include_series": { - "type": "boolean" - }, - "season_year": { - "type": "number" - }, - "season_quarter": { - "type": "number" - } - }, - "expirationSeconds": 900 - }, - "season_schedule": { - "link": "https://members-ng.iracing.com/data/series/season_schedule", - "parameters": { - "season_id": { - "type": "number", - "required": true - } - }, - "expirationSeconds": 900 - }, - "stats_series": { - "link": "https://members-ng.iracing.com/data/series/stats_series", - "note": "To get series and seasons for which standings should be available, filter the list by official: true.", - "expirationSeconds": 900 - } - }, - "stats": { - "member_bests": { - "link": "https://members-ng.iracing.com/data/stats/member_bests", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - }, - "car_id": { - "type": "number", - "note": "First call should exclude car_id; use cars_driven list in return for subsequent calls." - } - }, - "expirationSeconds": 900 - }, - "member_career": { - "link": "https://members-ng.iracing.com/data/stats/member_career", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - } - }, - "expirationSeconds": 900 - }, - "member_division": { - "link": "https://members-ng.iracing.com/data/stats/member_division", - "note": "Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Always for the authenticated member.", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "event_type": { - "type": "number", - "required": true, - "note": "The event type code for the division type: 4 - Time Trial; 5 - Race" - } - }, - "expirationSeconds": 900 - }, - "member_recap": { - "link": "https://members-ng.iracing.com/data/stats/member_recap", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - }, - "year": { - "type": "number", - "note": "Season year; if not supplied the current calendar year (UTC) is used." - }, - "season": { - "type": "number", - "note": "Season (quarter) within the year; if not supplied the recap will be fore the entire year." - } - }, - "expirationSeconds": 900 - }, - "member_recent_races": { - "link": "https://members-ng.iracing.com/data/stats/member_recent_races", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - } - }, - "expirationSeconds": 900 - }, - "member_summary": { - "link": "https://members-ng.iracing.com/data/stats/member_summary", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - } - }, - "expirationSeconds": 900 - }, - "member_yearly": { - "link": "https://members-ng.iracing.com/data/stats/member_yearly", - "parameters": { - "cust_id": { - "type": "number", - "note": "Defaults to the authenticated member." - } - }, - "expirationSeconds": 900 - }, - "season_driver_standings": { - "link": "https://members-ng.iracing.com/data/stats/season_driver_standings", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "car_class_id": { - "type": "number", - "required": true - }, - "division": { - "type": "number", - "note": "Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all." - }, - "race_week_num": { - "type": "number", - "note": "The first race week of a season is 0." - } - }, - "expirationSeconds": 900 - }, - "season_supersession_standings": { - "link": "https://members-ng.iracing.com/data/stats/season_supersession_standings", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "car_class_id": { - "type": "number", - "required": true - }, - "division": { - "type": "number", - "note": "Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all." - }, - "race_week_num": { - "type": "number", - "note": "The first race week of a season is 0." - } - }, - "expirationSeconds": 900 - }, - "season_team_standings": { - "link": "https://members-ng.iracing.com/data/stats/season_team_standings", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "car_class_id": { - "type": "number", - "required": true - }, - "race_week_num": { - "type": "number", - "note": "The first race week of a season is 0." - } - }, - "expirationSeconds": 900 - }, - "season_tt_standings": { - "link": "https://members-ng.iracing.com/data/stats/season_tt_standings", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "car_class_id": { - "type": "number", - "required": true - }, - "division": { - "type": "number", - "note": "Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all." - }, - "race_week_num": { - "type": "number", - "note": "The first race week of a season is 0." - } - }, - "expirationSeconds": 900 - }, - "season_tt_results": { - "link": "https://members-ng.iracing.com/data/stats/season_tt_results", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "car_class_id": { - "type": "number", - "required": true - }, - "race_week_num": { - "type": "number", - "required": true, - "note": "The first race week of a season is 0." - }, - "division": { - "type": "number", - "note": "Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all." - } - }, - "expirationSeconds": 900 - }, - "season_qualify_results": { - "link": "https://members-ng.iracing.com/data/stats/season_qualify_results", - "parameters": { - "season_id": { - "type": "number", - "required": true - }, - "car_class_id": { - "type": "number", - "required": true - }, - "race_week_num": { - "type": "number", - "required": true, - "note": "The first race week of a season is 0." - }, - "division": { - "type": "number", - "note": "Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all." - } - }, - "expirationSeconds": 900 - }, - "world_records": { - "link": "https://members-ng.iracing.com/data/stats/world_records", - "parameters": { - "car_id": { - "type": "number", - "required": true - }, - "track_id": { - "type": "number", - "required": true - }, - "season_year": { - "type": "number", - "note": "Limit best times to a given year." - }, - "season_quarter": { - "type": "number", - "note": "Limit best times to a given quarter; only applicable when year is used." - } - }, - "expirationSeconds": 900 - } - }, - "team": { - "get": { - "link": "https://members-ng.iracing.com/data/team/get", - "parameters": { - "team_id": { - "type": "number", - "required": true - }, - "include_licenses": { - "type": "boolean", - "note": "For faster responses, only request when necessary." - } - }, - "expirationSeconds": 900 - }, - "membership": { - "link": "https://members-ng.iracing.com/data/team/membership", - "note": "Results for the authenticated member, if any.", - "expirationSeconds": 900 - } - }, - "time_attack": { - "member_season_results": { - "link": "https://members-ng.iracing.com/data/time_attack/member_season_results", - "note": "Results for the authenticated member, if any.", - "parameters": { - "ta_comp_season_id": { - "type": "number", - "required": true - } - }, - "expirationSeconds": 900 - } - }, - "track": { - "assets": { - "link": "https://members-ng.iracing.com/data/track/assets", - "note": [ - "image paths are relative to https://images-static.iracing.com/" - ], - "expirationSeconds": 900 - }, - "get": { - "link": "https://members-ng.iracing.com/data/track/get", - "expirationSeconds": 900 - } - } -} \ No newline at end of file diff --git a/packages/api/package.json b/packages/api/package.json deleted file mode 100644 index 047cc19..0000000 --- a/packages/api/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "@iracing-data/api", - "version": "0.0.2-alpha.2", - "main": "dist/index.js", - "description": "iRacing `/data` API client using axios", - "scripts": { - "build": "tsc --build tsconfig.build.json" - }, - "dependencies": { - "axios": "^1.7.9", - "axios-cookiejar-support": "^6.0.4", - "tough-cookie": "^5.1.1" - } -} \ No newline at end of file diff --git a/packages/api-router/package.json b/packages/api/router/package.json similarity index 86% rename from packages/api-router/package.json rename to packages/api/router/package.json index daaa453..0678d0a 100644 --- a/packages/api-router/package.json +++ b/packages/api/router/package.json @@ -7,7 +7,7 @@ "build": "tsc --build tsconfig.build.json" }, "dependencies": { - "@iracing-data/api-client": "workspace:*", + "@iracing-data/api-client-fetch": "workspace:*", "@iracing-data/api-schema": "workspace:*", "better-call": "^1.0.26" } diff --git a/packages/api-router/src/index.ts b/packages/api/router/src/index.ts similarity index 77% rename from packages/api-router/src/index.ts rename to packages/api/router/src/index.ts index c94cc9d..41974d7 100644 --- a/packages/api-router/src/index.ts +++ b/packages/api/router/src/index.ts @@ -4,7 +4,7 @@ import * as routes from "./routes"; export interface CreateRouterOptions extends RouterConfig {} -export function createRouter({ ...options }: CreateRouterOptions = {}) { +export function createRouter(options: CreateRouterOptions = {}) { return createRouterFn( { ...routes, @@ -13,6 +13,7 @@ export function createRouter({ ...options }: CreateRouterOptions = {}) { ); } +export * from "@iracing-data/api-client-fetch"; export * from "./middleware"; export { routes, toNodeHandler }; export default createRouter; diff --git a/packages/api-router/src/middleware.ts b/packages/api/router/src/middleware.ts similarity index 94% rename from packages/api-router/src/middleware.ts rename to packages/api/router/src/middleware.ts index 66fd86d..19b712f 100644 --- a/packages/api-router/src/middleware.ts +++ b/packages/api/router/src/middleware.ts @@ -16,12 +16,9 @@ import { TeamApi, TimeAttackApi, TrackApi, -} from "@iracing-data/api-client"; +} from "@iracing-data/api-client-fetch"; import { createMiddleware } from "better-call"; -/** - * ???: Should this handle token refreshing? - */ export const iracingClientMiddleware = createMiddleware( { requireHeaders: true, @@ -67,3 +64,5 @@ export const iracingClientMiddleware = createMiddleware( }; } ); + +export default iracingClientMiddleware; diff --git a/packages/api-router/src/routes/data/car-class.ts b/packages/api/router/src/routes/data/car-class.ts similarity index 71% rename from packages/api-router/src/routes/data/car-class.ts rename to packages/api/router/src/routes/data/car-class.ts index 1271fe4..0cd1425 100644 --- a/packages/api-router/src/routes/data/car-class.ts +++ b/packages/api/router/src/routes/data/car-class.ts @@ -7,7 +7,6 @@ export const getCarClass = createEndpoint( requireHeaders: true, }, async ({ context: { iracing } }) => { - const response = await iracing.carClass.getCarClass(); - return response.data; + return await iracing.carClass.getCarClass(); } ); diff --git a/packages/api-router/src/routes/data/car.ts b/packages/api/router/src/routes/data/car.ts similarity index 66% rename from packages/api-router/src/routes/data/car.ts rename to packages/api/router/src/routes/data/car.ts index 2713dc7..fa4d401 100644 --- a/packages/api-router/src/routes/data/car.ts +++ b/packages/api/router/src/routes/data/car.ts @@ -6,8 +6,7 @@ export const carAssets = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.car.getCarAssets(); - return response.data; + return await iracing.car.getCarAssets(); } ); @@ -17,7 +16,6 @@ export const getCar = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.car.getCar(); - return response.data; + return await iracing.car.getCar(); } ); diff --git a/packages/api-router/src/routes/data/constants.ts b/packages/api/router/src/routes/data/constants.ts similarity index 62% rename from packages/api-router/src/routes/data/constants.ts rename to packages/api/router/src/routes/data/constants.ts index 30fca8d..4ec64f6 100644 --- a/packages/api-router/src/routes/data/constants.ts +++ b/packages/api/router/src/routes/data/constants.ts @@ -6,8 +6,7 @@ export const categories = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.constants.getConstantsCategories(); - return response.data; + return await iracing.constants.getConstantsCategories(); } ); @@ -17,8 +16,7 @@ export const divisions = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.constants.getConstantsDivisions(); - return response.data; + return await iracing.constants.getConstantsDivisions(); } ); @@ -28,7 +26,6 @@ export const eventTypes = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.constants.getConstantsEventTypes(); - return response.data; + return await iracing.constants.getConstantsEventTypes(); } ); diff --git a/packages/api-router/src/routes/data/doc.ts b/packages/api/router/src/routes/data/doc.ts similarity index 63% rename from packages/api-router/src/routes/data/doc.ts rename to packages/api/router/src/routes/data/doc.ts index 70610c8..4774aaf 100644 --- a/packages/api-router/src/routes/data/doc.ts +++ b/packages/api/router/src/routes/data/doc.ts @@ -6,8 +6,7 @@ export const getDoc = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getDocs(); - return response.data; + return await iracing.doc.getDocs(); } ); @@ -16,8 +15,7 @@ export const getCarClassDocs = createEndpoint( "/data/doc/carclass", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getCarClassDocs(); - return response.data; + return await iracing.doc.getCarClassDocs(); } ); @@ -25,8 +23,7 @@ export const getCarDocs = createEndpoint( "/data/doc/car", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getCarDocs(); - return response.data; + return await iracing.doc.getCarDocs(); } ); @@ -34,8 +31,7 @@ export const getConstantsDocs = createEndpoint( "/data/doc/constants", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getConstantsDocs(); - return response.data; + return await iracing.doc.getConstantsDocs(); } ); @@ -43,8 +39,7 @@ export const getDriverStatsByCategoryDocs = createEndpoint( "/data/doc/driver_stats_by_category", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getDriverStatsByCategoryDocs(); - return response.data; + return await iracing.doc.getDriverStatsByCategoryDocs(); } ); @@ -52,8 +47,7 @@ export const getHostedDocs = createEndpoint( "/data/doc/hosted", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getHostedDocs(); - return response.data; + return await iracing.doc.getHostedDocs(); } ); @@ -61,8 +55,7 @@ export const getLeagueDocs = createEndpoint( "/data/doc/league", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueDocs(); - return response.data; + return await iracing.doc.getLeagueDocs(); } ); @@ -70,8 +63,7 @@ export const getLookupDocs = createEndpoint( "/data/doc/lookup", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLookupDocs(); - return response.data; + return await iracing.doc.getLookupDocs(); } ); @@ -79,8 +71,7 @@ export const getMemberDocs = createEndpoint( "/data/doc/member", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberDocs(); - return response.data; + return await iracing.doc.getMemberDocs(); } ); @@ -88,8 +79,7 @@ export const getResultsDocs = createEndpoint( "/data/doc/results", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsDocs(); - return response.data; + return await iracing.doc.getResultsDocs(); } ); @@ -97,8 +87,7 @@ export const getSeasonDocs = createEndpoint( "/data/doc/season", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeasonDocs(); - return response.data; + return await iracing.doc.getSeasonDocs(); } ); @@ -106,8 +95,7 @@ export const getSeriesDocs = createEndpoint( "/data/doc/series", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesDocs(); - return response.data; + return await iracing.doc.getSeriesDocs(); } ); @@ -115,8 +103,7 @@ export const getStatsDocs = createEndpoint( "/data/doc/stats", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsDocs(); - return response.data; + return await iracing.doc.getStatsDocs(); } ); @@ -124,8 +111,7 @@ export const getTeamDocs = createEndpoint( "/data/doc/team", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTeamDocs(); - return response.data; + return await iracing.doc.getTeamDocs(); } ); @@ -133,8 +119,7 @@ export const getTimeAttackDocs = createEndpoint( "/data/doc/time_attack", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTimeAttackDocs(); - return response.data; + return await iracing.doc.getTimeAttackDocs(); } ); @@ -142,8 +127,7 @@ export const getTrackDocs = createEndpoint( "/data/doc/track", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTrackDocs(); - return response.data; + return await iracing.doc.getTrackDocs(); } ); @@ -152,8 +136,7 @@ export const getCarClassGetDocs = createEndpoint( "/data/doc/carclass/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getCarClassGetDocs(); - return response.data; + return await iracing.doc.getCarClassGetDocs(); } ); @@ -161,8 +144,7 @@ export const getCarAssetsDocs = createEndpoint( "/data/doc/car/assets", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getCarAssetsDocs(); - return response.data; + return await iracing.doc.getCarAssetsDocs(); } ); @@ -170,8 +152,7 @@ export const getCarGetDocs = createEndpoint( "/data/doc/car/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getCarGetDocs(); - return response.data; + return await iracing.doc.getCarGetDocs(); } ); @@ -179,8 +160,7 @@ export const getConstantsCategoriesDocs = createEndpoint( "/data/doc/constants/categories", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getConstantsCategoriesDocs(); - return response.data; + return await iracing.doc.getConstantsCategoriesDocs(); } ); @@ -188,8 +168,7 @@ export const getConstantsDivisionsDocs = createEndpoint( "/data/doc/constants/divisions", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getConstantsDivisionsDocs(); - return response.data; + return await iracing.doc.getConstantsDivisionsDocs(); } ); @@ -197,8 +176,7 @@ export const getConstantsEventTypesDocs = createEndpoint( "/data/doc/constants/event_types", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getConstantsEventTypesDocs(); - return response.data; + return await iracing.doc.getConstantsEventTypesDocs(); } ); @@ -206,10 +184,9 @@ export const getDriverStatsByCategoryCategoryDocs = createEndpoint( "/data/doc/driver_stats_by_category/{category}", { method: "GET" }, async ({ context: { iracing }, params }) => { - const response = await iracing.doc.getDriverStatsByCategoryCategoryDocs({ + return await iracing.doc.getDriverStatsByCategoryCategoryDocs({ category: params?.category, }); - return response.data; } ); @@ -217,8 +194,7 @@ export const getHostedCombinedSessionsDocs = createEndpoint( "/data/doc/hosted/combined_sessions", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getHostedCombinedSessionsDocs(); - return response.data; + return await iracing.doc.getHostedCombinedSessionsDocs(); } ); @@ -226,8 +202,7 @@ export const getHostedSessionsDocs = createEndpoint( "/data/doc/hosted/sessions", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getHostedSessionsDocs(); - return response.data; + return await iracing.doc.getHostedSessionsDocs(); } ); @@ -235,8 +210,7 @@ export const getLeagueCustomerLeagueSessionsDocs = createEndpoint( "/data/doc/league/cust_league_sessions", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueCustomerLeagueSessionsDocs(); - return response.data; + return await iracing.doc.getLeagueCustomerLeagueSessionsDocs(); } ); @@ -244,8 +218,7 @@ export const getLeagueDirectoryDocs = createEndpoint( "/data/doc/league/directory", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueDirectoryDocs(); - return response.data; + return await iracing.doc.getLeagueDirectoryDocs(); } ); @@ -253,8 +226,7 @@ export const getLeagueGetDocs = createEndpoint( "/data/doc/league/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueGetDocs(); - return response.data; + return await iracing.doc.getLeagueGetDocs(); } ); @@ -262,8 +234,7 @@ export const getLeagueGetPointsSystemsDocs = createEndpoint( "/data/doc/league/get_points_systems", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueGetPointsSystemsDocs(); - return response.data; + return await iracing.doc.getLeagueGetPointsSystemsDocs(); } ); @@ -271,8 +242,7 @@ export const getLeagueMembershipDocs = createEndpoint( "/data/doc/league/membership", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueMembershipDocs(); - return response.data; + return await iracing.doc.getLeagueMembershipDocs(); } ); @@ -280,8 +250,7 @@ export const getLeagueRosterDocs = createEndpoint( "/data/doc/league/roster", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueRosterDocs(); - return response.data; + return await iracing.doc.getLeagueRosterDocs(); } ); @@ -289,8 +258,7 @@ export const getLeagueSeasonsDocs = createEndpoint( "/data/doc/league/seasons", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueSeasonsDocs(); - return response.data; + return await iracing.doc.getLeagueSeasonsDocs(); } ); @@ -298,8 +266,7 @@ export const getLeagueSeasonStandingsDocs = createEndpoint( "/data/doc/league/season_standings", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueSeasonStandingsDocs(); - return response.data; + return await iracing.doc.getLeagueSeasonStandingsDocs(); } ); @@ -307,8 +274,7 @@ export const getLeagueSeasonSessionsDocs = createEndpoint( "/data/doc/league/season_sessions", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLeagueSeasonSessionsDocs(); - return response.data; + return await iracing.doc.getLeagueSeasonSessionsDocs(); } ); @@ -316,8 +282,7 @@ export const getLookupCountriesDocs = createEndpoint( "/data/doc/lookup/countries", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLookupCountriesDocs(); - return response.data; + return await iracing.doc.getLookupCountriesDocs(); } ); @@ -325,8 +290,7 @@ export const getLookupDriversDocs = createEndpoint( "/data/doc/lookup/drivers", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLookupDriversDocs(); - return response.data; + return await iracing.doc.getLookupDriversDocs(); } ); @@ -334,8 +298,7 @@ export const getLookupFlairsDocs = createEndpoint( "/data/doc/lookup/flairs", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLookupFlairsDocs(); - return response.data; + return await iracing.doc.getLookupFlairsDocs(); } ); @@ -343,8 +306,7 @@ export const getLookupGetDocs = createEndpoint( "/data/doc/lookup/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLookupGetDocs(); - return response.data; + return await iracing.doc.getLookupGetDocs(); } ); @@ -352,8 +314,7 @@ export const getLookupLicensesDocs = createEndpoint( "/data/doc/lookup/licenses", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getLookupLicensesDocs(); - return response.data; + return await iracing.doc.getLookupLicensesDocs(); } ); @@ -361,8 +322,7 @@ export const getMemberAwardsDocs = createEndpoint( "/data/doc/member/awards", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberAwardsDocs(); - return response.data; + return await iracing.doc.getMemberAwardsDocs(); } ); @@ -370,8 +330,7 @@ export const getMemberAwardInstancesDocs = createEndpoint( "/data/doc/member/award_instances", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberAwardInstancesDocs(); - return response.data; + return await iracing.doc.getMemberAwardInstancesDocs(); } ); @@ -379,8 +338,7 @@ export const getMemberChartDataDocs = createEndpoint( "/data/doc/member/chart_data", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberChartDataDocs(); - return response.data; + return await iracing.doc.getMemberChartDataDocs(); } ); @@ -388,8 +346,7 @@ export const getMemberGetDocs = createEndpoint( "/data/doc/member/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberGetDocs(); - return response.data; + return await iracing.doc.getMemberGetDocs(); } ); @@ -397,8 +354,7 @@ export const getMemberInfoDocs = createEndpoint( "/data/doc/member/info", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberInfoDocs(); - return response.data; + return await iracing.doc.getMemberInfoDocs(); } ); @@ -406,8 +362,7 @@ export const getMemberParticipationCreditsDocs = createEndpoint( "/data/doc/member/participation_credits", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberParticipationCreditsDocs(); - return response.data; + return await iracing.doc.getMemberParticipationCreditsDocs(); } ); @@ -415,8 +370,7 @@ export const getMemberProfileDocs = createEndpoint( "/data/doc/member/profile", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getMemberProfileDocs(); - return response.data; + return await iracing.doc.getMemberProfileDocs(); } ); @@ -424,8 +378,7 @@ export const getResultsGetDocs = createEndpoint( "/data/doc/results/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsGetDocs(); - return response.data; + return await iracing.doc.getResultsGetDocs(); } ); @@ -433,8 +386,7 @@ export const getResultsEventLogDocs = createEndpoint( "/data/doc/results/event_log", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsEventLogDocs(); - return response.data; + return await iracing.doc.getResultsEventLogDocs(); } ); @@ -442,8 +394,7 @@ export const getResultsLapChartDataDocs = createEndpoint( "/data/doc/results/lap_chart_data", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsLapChartDataDocs(); - return response.data; + return await iracing.doc.getResultsLapChartDataDocs(); } ); @@ -451,8 +402,7 @@ export const getResultsLapDataDocs = createEndpoint( "/data/doc/results/lap_data", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsLapDataDocs(); - return response.data; + return await iracing.doc.getResultsLapDataDocs(); } ); @@ -460,8 +410,7 @@ export const getResultsSearchHostedDocs = createEndpoint( "/data/doc/results/search_hosted", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsSearchHostedDocs(); - return response.data; + return await iracing.doc.getResultsSearchHostedDocs(); } ); @@ -469,8 +418,7 @@ export const getResultsSearchSeriesDocs = createEndpoint( "/data/doc/results/search_series", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsSearchSeriesDocs(); - return response.data; + return await iracing.doc.getResultsSearchSeriesDocs(); } ); @@ -478,8 +426,7 @@ export const getResultsSeasonResultsDocs = createEndpoint( "/data/doc/results/season_results", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getResultsSeasonResultsDocs(); - return response.data; + return await iracing.doc.getResultsSeasonResultsDocs(); } ); @@ -487,8 +434,7 @@ export const getSeasonListDocs = createEndpoint( "/data/doc/season/list", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeasonListDocs(); - return response.data; + return await iracing.doc.getSeasonListDocs(); } ); @@ -496,8 +442,7 @@ export const getSeasonRaceGuideDocs = createEndpoint( "/data/doc/season/race_guide", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeasonRaceGuideDocs(); - return response.data; + return await iracing.doc.getSeasonRaceGuideDocs(); } ); @@ -505,8 +450,7 @@ export const getSeasonSpectatorSubsessionIdsDocs = createEndpoint( "/data/doc/season/spectator_subsessionids", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeasonSpectatorSubsessionIdsDocs(); - return response.data; + return await iracing.doc.getSeasonSpectatorSubsessionIdsDocs(); } ); @@ -514,9 +458,7 @@ export const getSeasonSpectatorSubsessionIdsDetailDocs = createEndpoint( "/data/doc/season/spectator_subsessionids_detail", { method: "GET" }, async ({ context: { iracing } }) => { - const response = - await iracing.doc.getSeasonSpectatorSubsessionIdsDetailDocs(); - return response.data; + return await iracing.doc.getSeasonSpectatorSubsessionIdsDetailDocs(); } ); @@ -524,8 +466,7 @@ export const getSeriesAssetsDocs = createEndpoint( "/data/doc/series/assets", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesAssetsDocs(); - return response.data; + return await iracing.doc.getSeriesAssetsDocs(); } ); @@ -533,8 +474,7 @@ export const getSeriesGetDocs = createEndpoint( "/data/doc/series/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesGetDocs(); - return response.data; + return await iracing.doc.getSeriesGetDocs(); } ); @@ -542,8 +482,7 @@ export const getSeriesPastSeasonsDocs = createEndpoint( "/data/doc/series/past_seasons", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesPastSeasonsDocs(); - return response.data; + return await iracing.doc.getSeriesPastSeasonsDocs(); } ); @@ -551,8 +490,7 @@ export const getSeriesSeasonsDocs = createEndpoint( "/data/doc/series/seasons", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesSeasonsDocs(); - return response.data; + return await iracing.doc.getSeriesSeasonsDocs(); } ); @@ -560,8 +498,7 @@ export const getSeriesSeasonListDocs = createEndpoint( "/data/doc/series/season_list", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesSeasonListDocs(); - return response.data; + return await iracing.doc.getSeriesSeasonListDocs(); } ); @@ -569,8 +506,7 @@ export const getSeriesSeasonScheduleDocs = createEndpoint( "/data/doc/series/season_schedule", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesSeasonScheduleDocs(); - return response.data; + return await iracing.doc.getSeriesSeasonScheduleDocs(); } ); @@ -578,8 +514,7 @@ export const getSeriesStatsSeriesDocs = createEndpoint( "/data/doc/series/stats_series", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getSeriesStatsSeriesDocs(); - return response.data; + return await iracing.doc.getSeriesStatsSeriesDocs(); } ); @@ -587,8 +522,7 @@ export const getStatsMemberBestsDocs = createEndpoint( "/data/doc/stats/member_bests", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsMemberBestsDocs(); - return response.data; + return await iracing.doc.getStatsMemberBestsDocs(); } ); @@ -596,8 +530,7 @@ export const getStatsMemberCareerDocs = createEndpoint( "/data/doc/stats/member_career", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsMemberCareerDocs(); - return response.data; + return await iracing.doc.getStatsMemberCareerDocs(); } ); @@ -605,8 +538,7 @@ export const getStatsMemberDivisionDocs = createEndpoint( "/data/doc/stats/member_division", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsMemberDivisionDocs(); - return response.data; + return await iracing.doc.getStatsMemberDivisionDocs(); } ); @@ -614,8 +546,7 @@ export const getStatsMemberRecapDocs = createEndpoint( "/data/doc/stats/member_recap", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsMemberRecapDocs(); - return response.data; + return await iracing.doc.getStatsMemberRecapDocs(); } ); @@ -623,8 +554,7 @@ export const getStatsMemberRecentRacesDocs = createEndpoint( "/data/doc/stats/member_recent_races", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsMemberRecentRacesDocs(); - return response.data; + return await iracing.doc.getStatsMemberRecentRacesDocs(); } ); @@ -632,8 +562,7 @@ export const getStatsMemberSummaryDocs = createEndpoint( "/data/doc/stats/member_summary", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsMemberSummaryDocs(); - return response.data; + return await iracing.doc.getStatsMemberSummaryDocs(); } ); @@ -641,8 +570,7 @@ export const getStatsMemberYearlyDocs = createEndpoint( "/data/doc/stats/member_yearly", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsMemberYearlyDocs(); - return response.data; + return await iracing.doc.getStatsMemberYearlyDocs(); } ); @@ -650,8 +578,7 @@ export const getStatsSeasonDriverStandingsDocs = createEndpoint( "/data/doc/stats/season_driver_standings", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsSeasonDriverStandingsDocs(); - return response.data; + return await iracing.doc.getStatsSeasonDriverStandingsDocs(); } ); @@ -659,9 +586,7 @@ export const getStatsSeasonSupersessionStandingsDocs = createEndpoint( "/data/doc/stats/season_supersession_standings", { method: "GET" }, async ({ context: { iracing } }) => { - const response = - await iracing.doc.getStatsSeasonSupersessionStandingsDocs(); - return response.data; + return await iracing.doc.getStatsSeasonSupersessionStandingsDocs(); } ); @@ -669,8 +594,7 @@ export const getStatsSeasonTeamStandingsDocs = createEndpoint( "/data/doc/stats/season_team_standings", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsSeasonTeamStandingsDocs(); - return response.data; + return await iracing.doc.getStatsSeasonTeamStandingsDocs(); } ); @@ -678,8 +602,7 @@ export const getStatsSeasonTTStandingsDocs = createEndpoint( "/data/doc/stats/season_tt_standings", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsSeasonTTStandingsDocs(); - return response.data; + return await iracing.doc.getStatsSeasonTTStandingsDocs(); } ); @@ -687,8 +610,7 @@ export const getStatsSeasonTTResultsDocs = createEndpoint( "/data/doc/stats/season_tt_results", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsSeasonTTResultsDocs(); - return response.data; + return await iracing.doc.getStatsSeasonTTResultsDocs(); } ); @@ -696,8 +618,7 @@ export const getStatsSeasonQualifyResultsDocs = createEndpoint( "/data/doc/stats/season_qualify_results", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsSeasonQualifyResultsDocs(); - return response.data; + return await iracing.doc.getStatsSeasonQualifyResultsDocs(); } ); @@ -705,8 +626,7 @@ export const getStatsWorldRecordsDocs = createEndpoint( "/data/doc/stats/world_records", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getStatsWorldRecordsDocs(); - return response.data; + return await iracing.doc.getStatsWorldRecordsDocs(); } ); @@ -714,8 +634,7 @@ export const getTeamGetDocs = createEndpoint( "/data/doc/team/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTeamGetDocs(); - return response.data; + return await iracing.doc.getTeamGetDocs(); } ); @@ -723,8 +642,7 @@ export const getTeamMembershipDocs = createEndpoint( "/data/doc/team/membership", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTeamMembershipDocs(); - return response.data; + return await iracing.doc.getTeamMembershipDocs(); } ); @@ -732,8 +650,7 @@ export const getTimeAttackMemberSeasonResultsDocs = createEndpoint( "/data/doc/time_attack/member_season_results", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTimeAttackMemberSeasonResultsDocs(); - return response.data; + return await iracing.doc.getTimeAttackMemberSeasonResultsDocs(); } ); @@ -741,8 +658,7 @@ export const getTrackAssetsDocs = createEndpoint( "/data/doc/track/assets", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTrackAssetsDocs(); - return response.data; + return await iracing.doc.getTrackAssetsDocs(); } ); @@ -750,7 +666,6 @@ export const getTrackGetDocs = createEndpoint( "/data/doc/track/get", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.doc.getTrackGetDocs(); - return response.data; + return await iracing.doc.getTrackGetDocs(); } ); diff --git a/packages/api-router/src/routes/data/driver-stats.ts b/packages/api/router/src/routes/data/driver-stats.ts similarity index 80% rename from packages/api-router/src/routes/data/driver-stats.ts rename to packages/api/router/src/routes/data/driver-stats.ts index 2cccefd..c38228c 100644 --- a/packages/api-router/src/routes/data/driver-stats.ts +++ b/packages/api/router/src/routes/data/driver-stats.ts @@ -8,10 +8,8 @@ export const category = createEndpoint( requireHeaders: true, }, async ({ context: { iracing }, params: queryParams }) => { - const response = await iracing.driverStats.getDriverStatsByCategory( + return await iracing.driverStats.getDriverStatsByCategory( await IRacingDriverStatsByCategoryPathSchema.parseAsync(queryParams) ); - - return response.data; } ); diff --git a/packages/api-router/src/routes/data/hosted.ts b/packages/api/router/src/routes/data/hosted.ts similarity index 72% rename from packages/api-router/src/routes/data/hosted.ts rename to packages/api/router/src/routes/data/hosted.ts index 6ed721a..804a804 100644 --- a/packages/api-router/src/routes/data/hosted.ts +++ b/packages/api/router/src/routes/data/hosted.ts @@ -8,8 +8,7 @@ export const combinedSessions = createEndpoint( query: IRacingHostedCombinedSessionsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.hosted.getHostedCombinedSessions(query); - return response.data; + return await iracing.hosted.getHostedCombinedSessions(query); } ); @@ -19,7 +18,6 @@ export const sessions = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.hosted.getHostedSessions(); - return response.data; + return await iracing.hosted.getHostedSessions(); } ); diff --git a/packages/api-router/src/routes/data/index.ts b/packages/api/router/src/routes/data/index.ts similarity index 100% rename from packages/api-router/src/routes/data/index.ts rename to packages/api/router/src/routes/data/index.ts diff --git a/packages/api-router/src/routes/data/league.ts b/packages/api/router/src/routes/data/league.ts similarity index 73% rename from packages/api-router/src/routes/data/league.ts rename to packages/api/router/src/routes/data/league.ts index c5ab455..8e0b6c8 100644 --- a/packages/api-router/src/routes/data/league.ts +++ b/packages/api/router/src/routes/data/league.ts @@ -18,8 +18,7 @@ export const directory = createEndpoint( query: IRacingLeagueDirectoryParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeagueDirectory(query); - return response.data; + return await iracing.league.getLeagueDirectory(query); } ); @@ -30,9 +29,7 @@ export const customerLeagueSessions = createEndpoint( query: IRacingLeagueCustomerSessionsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = - await iracing.league.getLeagueCustomerLeagueSessions(query); - return response.data; + return await iracing.league.getLeagueCustomerLeagueSessions(query); } ); @@ -43,8 +40,7 @@ export const getLeague = createEndpoint( query: IRacingLeagueGetParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeague(query); - return response.data; + return await iracing.league.getLeague(query); } ); @@ -55,8 +51,7 @@ export const getPointsSystems = createEndpoint( query: IRacingLeagueGetPointsSystemsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeaguePointsSystems(query); - return response.data; + return await iracing.league.getLeaguePointsSystems(query); } ); @@ -67,8 +62,7 @@ export const leagueMembership = createEndpoint( query: IRacingLeagueMembershipParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeagueMembership(query); - return response.data; + return await iracing.league.getLeagueMembership(query); } ); @@ -79,8 +73,7 @@ export const leagueRoster = createEndpoint( query: IRacingLeagueRosterParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeagueRoster(query); - return response.data; + return await iracing.league.getLeagueRoster(query); } ); @@ -91,8 +84,7 @@ export const leagueSeasons = createEndpoint( query: IRacingLeagueSeasonsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeagueSeasons(query); - return response.data; + return await iracing.league.getLeagueSeasons(query); } ); @@ -103,8 +95,7 @@ export const seasonStandings = createEndpoint( query: IRacingLeagueSeasonStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeagueSeasonStandings(query); - return response.data; + return await iracing.league.getLeagueSeasonStandings(query); } ); @@ -115,7 +106,6 @@ export const seasonSessions = createEndpoint( query: IRacingLeagueSeasonSessionsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.league.getLeagueSeasonSessions(query); - return response.data; + return await iracing.league.getLeagueSeasonSessions(query); } ); diff --git a/packages/api-router/src/routes/data/lookup.ts b/packages/api/router/src/routes/data/lookup.ts similarity index 67% rename from packages/api-router/src/routes/data/lookup.ts rename to packages/api/router/src/routes/data/lookup.ts index 45734de..835be78 100644 --- a/packages/api-router/src/routes/data/lookup.ts +++ b/packages/api/router/src/routes/data/lookup.ts @@ -7,8 +7,7 @@ export const countries = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.lookup.getLookupCountries(); - return response.data; + return await iracing.lookup.getLookupCountries(); } ); @@ -18,8 +17,7 @@ export const flairs = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.lookup.getLookupFlairs(); - return response.data; + return await iracing.lookup.getLookupFlairs(); } ); @@ -29,8 +27,7 @@ export const licenses = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.lookup.getLookupLicenses(); - return response.data; + return await iracing.lookup.getLookupLicenses(); } ); @@ -41,8 +38,7 @@ export const drivers = createEndpoint( query: IRacingLookupDriversParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.lookup.getLookupDrivers(query); - return response.data; + return await iracing.lookup.getLookupDrivers(query); } ); @@ -53,7 +49,6 @@ export const getLookup = createEndpoint( requireHeaders: true, }, async ({ context: { iracing }, query }) => { - const response = await iracing.lookup.getLookup(); - return response.data; + return await iracing.lookup.getLookup(); } ); diff --git a/packages/api-router/src/routes/data/member.ts b/packages/api/router/src/routes/data/member.ts similarity index 71% rename from packages/api-router/src/routes/data/member.ts rename to packages/api/router/src/routes/data/member.ts index 3f21ebe..c991d89 100644 --- a/packages/api-router/src/routes/data/member.ts +++ b/packages/api/router/src/routes/data/member.ts @@ -15,8 +15,7 @@ export const awards = createEndpoint( query: IRacingMemberAwardsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.member.getMemberAwards(query); - return response.data; + return await iracing.member.getMemberAwards(query); } ); @@ -28,8 +27,7 @@ export const awardInstances = createEndpoint( query: IRacingMemberAwardInstancesParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.member.getMemberAwardInstances(query); - return response.data; + return await iracing.member.getMemberAwardInstances(query); } ); @@ -40,8 +38,7 @@ export const chartData = createEndpoint( query: IRacingMemberChartDataParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.member.getMemberChartData(query); - return response.data; + return await iracing.member.getMemberChartData(query); } ); @@ -52,8 +49,7 @@ export const getMember = createEndpoint( query: IRacingMemberGetParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.member.getMember(query); - return response.data; + return await iracing.member.getMember(query); } ); @@ -63,8 +59,7 @@ export const info = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.member.getMemberInfo(); - return response.data; + return await iracing.member.getMemberInfo(); } ); @@ -72,8 +67,7 @@ export const participationCredits = createEndpoint( "/data/member/participation_credits", { method: "GET" }, async ({ context: { iracing } }) => { - const response = await iracing.member.getMemberParticipationCredits(); - return response.data; + return await iracing.member.getMemberParticipationCredits(); } ); @@ -84,7 +78,6 @@ export const profile = createEndpoint( query: IRacingMemberProfileParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.member.getMemberProfile(query); - return response.data; + return await iracing.member.getMemberProfile(query); } ); diff --git a/packages/api-router/src/routes/data/results.ts b/packages/api/router/src/routes/data/results.ts similarity index 51% rename from packages/api-router/src/routes/data/results.ts rename to packages/api/router/src/routes/data/results.ts index a118e2e..6d12499 100644 --- a/packages/api-router/src/routes/data/results.ts +++ b/packages/api/router/src/routes/data/results.ts @@ -13,8 +13,7 @@ export const getResults = createEndpoint( "/data/results/get", { method: "GET", query: IRacingResultsGetParametersSchema }, async ({ context: { iracing }, query }) => { - const response = await iracing.results.getResults(query); - return response.data; + return await iracing.results.getResults(query); } ); @@ -22,8 +21,7 @@ export const eventLog = createEndpoint( "/data/results/event_log", { method: "GET", query: IRacingResultsEventLogParametersSchema }, async ({ context: { iracing }, query }) => { - const response = await iracing.results.getResultsEventLog(query); - return response.data; + return await iracing.results.getResultsEventLog(query); } ); @@ -31,8 +29,7 @@ export const lapChartData = createEndpoint( "/data/results/lap_chart_data", { method: "GET", query: IRacingResultsLapChartDataParametersSchema }, async ({ context: { iracing }, query }) => { - const response = await iracing.results.getResultsLapChartData(query); - return response.data; + return await iracing.results.getResultsLapChartData(query); } ); @@ -40,26 +37,65 @@ export const lapData = createEndpoint( "/data/results/lap_data", { method: "GET", query: IRacingResultsLapDataParametersSchema }, async ({ context: { iracing }, query }) => { - const response = await iracing.results.getResultsLapData(query); - return response.data; + return await iracing.results.getResultsLapData(query); } ); export const searchHosted = createEndpoint( "/data/results/search_hosted", { method: "GET", query: IRacingResultsSearchHostedParametersSchema }, - async ({ context: { iracing }, query }) => { - const response = await iracing.results.getResultsSearchHosted(query); - return response.data; + async ({ + context: { iracing }, + query: { + start_range_begin, + start_range_end, + finish_range_begin, + finish_range_end, + ...query + }, + }) => { + return await iracing.results.getResultsSearchHosted({ + ...query, + start_range_begin: start_range_begin + ? new Date(start_range_begin) + : undefined, + start_range_end: start_range_end ? new Date(start_range_end) : undefined, + finish_range_begin: finish_range_begin + ? new Date(finish_range_begin) + : undefined, + finish_range_end: finish_range_end + ? new Date(finish_range_end) + : undefined, + }); } ); export const searchSeries = createEndpoint( "/data/results/search_series", { method: "GET", query: IRacingResultsSearchSeriesParametersSchema }, - async ({ context: { iracing }, query }) => { - const response = await iracing.results.getResultsSearchSeries(query); - return response.data; + async ({ + context: { iracing }, + query: { + start_range_begin, + start_range_end, + finish_range_begin, + finish_range_end, + ...query + }, + }) => { + return await iracing.results.getResultsSearchSeries({ + ...query, + start_range_begin: start_range_begin + ? new Date(start_range_begin) + : undefined, + start_range_end: start_range_end ? new Date(start_range_end) : undefined, + finish_range_begin: finish_range_begin + ? new Date(finish_range_begin) + : undefined, + finish_range_end: finish_range_end + ? new Date(finish_range_end) + : undefined, + }); } ); @@ -67,7 +103,6 @@ export const seasonResults = createEndpoint( "/data/results/season_results", { method: "GET", query: IRacingResultsSeasonResultsParametersSchema }, async ({ context: { iracing }, query }) => { - const response = await iracing.results.getResultsSeasonResults(query); - return response.data; + return await iracing.results.getResultsSeasonResults(query); } ); diff --git a/packages/api-router/src/routes/data/season.ts b/packages/api/router/src/routes/data/season.ts similarity index 70% rename from packages/api-router/src/routes/data/season.ts rename to packages/api/router/src/routes/data/season.ts index 324aefe..d18e792 100644 --- a/packages/api-router/src/routes/data/season.ts +++ b/packages/api/router/src/routes/data/season.ts @@ -13,8 +13,7 @@ export const list = createEndpoint( query: IRacingSeasonListParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.season.getSeasonList(query); - return response.data; + return await iracing.season.getSeasonList(query); } ); @@ -24,9 +23,11 @@ export const raceGuide = createEndpoint( method: "GET", query: IRacingSeasonRaceGuideParametersSchema, }, - async ({ context: { iracing }, query }) => { - const response = await iracing.season.getSeasonRaceGuide(query); - return response.data; + async ({ context: { iracing }, query: { from, ...query } }) => { + return await iracing.season.getSeasonRaceGuide({ + ...query, + from: from ? new Date(from) : undefined, + }); } ); @@ -37,9 +38,7 @@ export const spectatorSubsessionIds = createEndpoint( query: IRacingSeasonSpectatorSubsessionidsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = - await iracing.season.getSeasonSpectatorSubsessionIds(query); - return response.data; + return await iracing.season.getSeasonSpectatorSubsessionIds(query); } ); @@ -50,8 +49,6 @@ export const spectatorSubsessionIdsDetail = createEndpoint( query: IRacingSeasonSpectatorSubsessionidsDetailParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = - await iracing.season.getSeasonSpectatorSubsessionIdsDetail(query); - return response.data; + return await iracing.season.getSeasonSpectatorSubsessionIdsDetail(query); } ); diff --git a/packages/api-router/src/routes/data/series.ts b/packages/api/router/src/routes/data/series.ts similarity index 70% rename from packages/api-router/src/routes/data/series.ts rename to packages/api/router/src/routes/data/series.ts index 5f64e1d..7ee3386 100644 --- a/packages/api-router/src/routes/data/series.ts +++ b/packages/api/router/src/routes/data/series.ts @@ -12,8 +12,7 @@ export const seriesAssets = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.series.getSeriesAssets(); - return response.data; + return await iracing.series.getSeriesAssets(); } ); @@ -23,8 +22,7 @@ export const getSeries = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.series.getSeries(); - return response.data; + return await iracing.series.getSeries(); } ); @@ -35,8 +33,7 @@ export const pastSeasons = createEndpoint( query: IRacingSeriesPastSeasonsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.series.getSeriesPastSeasons(query); - return response.data; + return await iracing.series.getSeriesPastSeasons(query); } ); @@ -47,8 +44,7 @@ export const seasons = createEndpoint( query: IRacingSeriesSeasonsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.series.getSeriesSeasons(query); - return response.data; + return await iracing.series.getSeriesSeasons(query); } ); @@ -59,8 +55,7 @@ export const seasonList = createEndpoint( query: IRacingSeriesSeasonListParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.series.getSeriesSeasonList(query); - return response.data; + return await iracing.series.getSeriesSeasonList(query); } ); @@ -71,8 +66,7 @@ export const seasonSchedule = createEndpoint( query: IRacingSeriesSeasonScheduleParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.series.getSeriesSeasonSchedule(query); - return response.data; + return await iracing.series.getSeriesSeasonSchedule(query); } ); @@ -82,7 +76,6 @@ export const statsSeries = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.series.getSeriesStatsSeries(); - return response.data; + return await iracing.series.getSeriesStatsSeries(); } ); diff --git a/packages/api-router/src/routes/data/stats.ts b/packages/api/router/src/routes/data/stats.ts similarity index 73% rename from packages/api-router/src/routes/data/stats.ts rename to packages/api/router/src/routes/data/stats.ts index 7b8c5f6..5eee1a7 100644 --- a/packages/api-router/src/routes/data/stats.ts +++ b/packages/api/router/src/routes/data/stats.ts @@ -23,8 +23,7 @@ export const memberBests = createEndpoint( query: IRacingStatsMemberBestsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsMemberBests(query); - return response.data; + return await iracing.stats.getStatsMemberBests(query); } ); @@ -35,8 +34,7 @@ export const memberCareer = createEndpoint( query: IRacingStatsMemberCareerParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsMemberCareer(query); - return response.data; + return await iracing.stats.getStatsMemberCareer(query); } ); @@ -47,8 +45,7 @@ export const memberDivision = createEndpoint( query: IRacingStatsMemberDivisionParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsMemberDivision(query); - return response.data; + return await iracing.stats.getStatsMemberDivision(query); } ); @@ -59,8 +56,7 @@ export const memberRecap = createEndpoint( query: IRacingStatsMemberRecapParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsMemberRecap(query); - return response.data; + return await iracing.stats.getStatsMemberRecap(query); } ); @@ -71,8 +67,7 @@ export const memberRecentRaces = createEndpoint( query: IRacingStatsMemberRecentRacesParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsMemberRecentRaces(query); - return response.data; + return await iracing.stats.getStatsMemberRecentRaces(query); } ); @@ -83,8 +78,7 @@ export const memberSummary = createEndpoint( query: IRacingStatsMemberSummaryParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsMemberSummary(query); - return response.data; + return await iracing.stats.getStatsMemberSummary(query); } ); @@ -95,8 +89,7 @@ export const memberYearly = createEndpoint( query: IRacingStatsMemberYearlyParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsMemberYearly(query); - return response.data; + return await iracing.stats.getStatsMemberYearly(query); } ); @@ -107,8 +100,7 @@ export const seasonDriverStandings = createEndpoint( query: IRacingStatsSeasonDriverStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsSeasonDriverStandings(query); - return response.data; + return await iracing.stats.getStatsSeasonDriverStandings(query); } ); @@ -119,9 +111,7 @@ export const seasonSupersessionStandings = createEndpoint( query: IRacingStatsSeasonSupersessionStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = - await iracing.stats.getStatsSeasonSupersessionStandings(query); - return response.data; + return await iracing.stats.getStatsSeasonSupersessionStandings(query); } ); @@ -132,8 +122,7 @@ export const seasonTeamStandings = createEndpoint( query: IRacingStatsSeasonTeamStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsSeasonTeamStandings(query); - return response.data; + return await iracing.stats.getStatsSeasonTeamStandings(query); } ); @@ -144,9 +133,7 @@ export const seasonTimeTrialStandings = createEndpoint( query: IRacingStatsSeasonTTStandingsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = - await iracing.stats.getStatsSeasonTimeTrialStandings(query); - return response.data; + return await iracing.stats.getStatsSeasonTimeTrialStandings(query); } ); @@ -157,8 +144,7 @@ export const seasonTimeTrialResults = createEndpoint( query: IRacingStatsSeasonTTResultsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsSeasonTimeTrialResults(query); - return response.data; + return await iracing.stats.getStatsSeasonTimeTrialResults(query); } ); @@ -169,8 +155,7 @@ export const seasonQualifyResults = createEndpoint( query: IRacingStatsSeasonQualifyResultsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsSeasonQualifyResults(query); - return response.data; + return await iracing.stats.getStatsSeasonQualifyResults(query); } ); @@ -181,7 +166,6 @@ export const worldRecords = createEndpoint( query: IRacingStatsWorldRecordsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.stats.getStatsWorldRecords(query); - return response.data; + return await iracing.stats.getStatsWorldRecords(query); } ); diff --git a/packages/api-router/src/routes/data/team.ts b/packages/api/router/src/routes/data/team.ts similarity index 72% rename from packages/api-router/src/routes/data/team.ts rename to packages/api/router/src/routes/data/team.ts index 388a0ee..26a9cc5 100644 --- a/packages/api-router/src/routes/data/team.ts +++ b/packages/api/router/src/routes/data/team.ts @@ -8,8 +8,7 @@ export const getTeam = createEndpoint( query: IRacingTeamGetParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = await iracing.team.getTeam(query); - return response.data; + return await iracing.team.getTeam(query); } ); @@ -19,7 +18,6 @@ export const membership = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.team.getTeamMembership(); - return response.data; + return await iracing.team.getTeamMembership(); } ); diff --git a/packages/api-router/src/routes/data/time-attack.ts b/packages/api/router/src/routes/data/time-attack.ts similarity index 76% rename from packages/api-router/src/routes/data/time-attack.ts rename to packages/api/router/src/routes/data/time-attack.ts index d0c60da..bf91e37 100644 --- a/packages/api-router/src/routes/data/time-attack.ts +++ b/packages/api/router/src/routes/data/time-attack.ts @@ -8,8 +8,6 @@ export const memberSeasonResults = createEndpoint( query: IRacingTimeAttackMemberSeasonResultsParametersSchema, }, async ({ context: { iracing }, query }) => { - const response = - await iracing.timeAttack.getTimeAttackMemberSeasonResults(query); - return response.data; + return await iracing.timeAttack.getTimeAttackMemberSeasonResults(query); } ); diff --git a/packages/api-router/src/routes/data/track.ts b/packages/api/router/src/routes/data/track.ts similarity index 66% rename from packages/api-router/src/routes/data/track.ts rename to packages/api/router/src/routes/data/track.ts index aa948ec..7318493 100644 --- a/packages/api-router/src/routes/data/track.ts +++ b/packages/api/router/src/routes/data/track.ts @@ -6,8 +6,7 @@ export const trackAssets = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.track.getTrackAssets(); - return response.data; + return await iracing.track.getTrackAssets(); } ); @@ -17,7 +16,6 @@ export const getTrack = createEndpoint( method: "GET", }, async ({ context: { iracing } }) => { - const response = await iracing.track.getTrack(); - return response.data; + return await iracing.track.getTrack(); } ); diff --git a/packages/api-router/src/routes/index.ts b/packages/api/router/src/routes/index.ts similarity index 100% rename from packages/api-router/src/routes/index.ts rename to packages/api/router/src/routes/index.ts diff --git a/packages/api-router/src/routes/utils.ts b/packages/api/router/src/routes/utils.ts similarity index 100% rename from packages/api-router/src/routes/utils.ts rename to packages/api/router/src/routes/utils.ts diff --git a/packages/api-schema/tsconfig.build.json b/packages/api/router/tsconfig.build.json similarity index 83% rename from packages/api-schema/tsconfig.build.json rename to packages/api/router/tsconfig.build.json index 24068a8..f8efe39 100644 --- a/packages/api-schema/tsconfig.build.json +++ b/packages/api/router/tsconfig.build.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig/node.json", + "extends": "../../../tsconfig/node.json", "compilerOptions": { "rootDir": "./src", "outDir": "./dist", diff --git a/packages/api-router/tsconfig.json b/packages/api/router/tsconfig.json similarity index 100% rename from packages/api-router/tsconfig.json rename to packages/api/router/tsconfig.json diff --git a/packages/api-schema/README.md b/packages/api/schema/README.md similarity index 100% rename from packages/api-schema/README.md rename to packages/api/schema/README.md diff --git a/packages/api-schema/package.json b/packages/api/schema/package.json similarity index 100% rename from packages/api-schema/package.json rename to packages/api/schema/package.json diff --git a/packages/api-schema/src/index.ts b/packages/api/schema/src/index.ts similarity index 100% rename from packages/api-schema/src/index.ts rename to packages/api/schema/src/index.ts diff --git a/packages/api-schema/src/schema/index.ts b/packages/api/schema/src/schema/index.ts similarity index 100% rename from packages/api-schema/src/schema/index.ts rename to packages/api/schema/src/schema/index.ts diff --git a/packages/api-schema/src/schema/parameters.ts b/packages/api/schema/src/schema/parameters.ts similarity index 100% rename from packages/api-schema/src/schema/parameters.ts rename to packages/api/schema/src/schema/parameters.ts diff --git a/packages/api-schema/src/schema/primitives.ts b/packages/api/schema/src/schema/primitives.ts similarity index 100% rename from packages/api-schema/src/schema/primitives.ts rename to packages/api/schema/src/schema/primitives.ts diff --git a/packages/api-schema/src/schema/responses.ts b/packages/api/schema/src/schema/responses.ts similarity index 100% rename from packages/api-schema/src/schema/responses.ts rename to packages/api/schema/src/schema/responses.ts diff --git a/packages/api-router/tsconfig.build.json b/packages/api/schema/tsconfig.build.json similarity index 83% rename from packages/api-router/tsconfig.build.json rename to packages/api/schema/tsconfig.build.json index 24068a8..f8efe39 100644 --- a/packages/api-router/tsconfig.build.json +++ b/packages/api/schema/tsconfig.build.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig/node.json", + "extends": "../../../tsconfig/node.json", "compilerOptions": { "rootDir": "./src", "outDir": "./dist", diff --git a/packages/api-schema/tsconfig.json b/packages/api/schema/tsconfig.json similarity index 100% rename from packages/api-schema/tsconfig.json rename to packages/api/schema/tsconfig.json diff --git a/packages/api/src/api/README.md b/packages/api/src/api/README.md deleted file mode 100644 index c3beb97..0000000 --- a/packages/api/src/api/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# API Module Documentation - -## Overview - -Supported routes are defined in the subdirectories. Each subdirectory represents an API provided by iRacing. - -i.e. `data` represents the `/data` route. `data/car` represents the `/data/car` route. The root (this directory) represents the `/` route. - -## Adding a route - -To add a new route, navigate to the appropriate subdirectory and edit the `index.ts` file, or create a new subdirectory. - -### Example: New route to existing resource - -To add a new route `/data/track`, edit the existing `TrackAPI` class in `index.ts` in `./data/track`. -Add a function that represents the request to the endpoint. - -```typescript -export class TrackAPI extends NetworkClientProvider { - // ... existing implementation - - newRoute() { - return this.client.get("/data/track/newRoute"); - } -} -``` - -### Example: New route with new resource - -Create a new subdirectory in the appropriate directory and add an `index.ts` file. Define a new class that represents the API resource -and extends `NetworkClientProvider` to get access to the Axios client. - -```typescript -export class NewAPI extends NetworkClientProvider { - resourceEndpoint() { - return this.client.get("/new/route"); - } -} -``` - -Add the API class to the parent class, if appropriate. In this example, let's consider that `/new` is a new resource under the `data` resource. Add the new class to the `DataAPI` class: - -```typescript -// ... Existing import -import { NewAPI } from './new'; - -export class DataAPI extends NetworkClientProvider { - // ... existing implementation - private _new: NewAPI; - get new() { - return this._new; - } - - constructor(client: AxiosInstance) { - // ... existing initialization - this._new = new NewAPI(client); - } -} -``` diff --git a/packages/api/src/api/auth/index.ts b/packages/api/src/api/auth/index.ts deleted file mode 100644 index 4f67464..0000000 --- a/packages/api/src/api/auth/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { NetworkClientProvider } from "../types"; -import { hashPassword } from "../../util"; -import assert from "node:assert"; - -export class AuthAPI extends NetworkClientProvider { - async auth({ - username, - password, - hashedPassword, - }: { - username: string; - password?: string; - hashedPassword?: string; - }) { - assert( - password || hashedPassword, - "`password` or `hashedPassword` is required." - ); - - let normalizedPassword = hashedPassword; - if (!normalizedPassword && password) { - normalizedPassword = await hashPassword(username, password); - } - - return this.client.post("/auth", { - email: username, - password: normalizedPassword, - }); - } -} - -export default AuthAPI; diff --git a/packages/api/src/api/data/car-class/index.ts b/packages/api/src/api/data/car-class/index.ts deleted file mode 100644 index b012555..0000000 --- a/packages/api/src/api/data/car-class/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NetworkClientProvider, IRacingAPIResponse } from "../../types"; - -export class CarClassAPI extends NetworkClientProvider { - get() { - return this.client.get("/data/carclass/get"); - } -} - -export default CarClassAPI; diff --git a/packages/api/src/api/data/car/index.ts b/packages/api/src/api/data/car/index.ts deleted file mode 100644 index 800d9d5..0000000 --- a/packages/api/src/api/data/car/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NetworkClientProvider, IRacingAPIResponse } from "../../types"; - -export class CarAPI extends NetworkClientProvider { - /** - * Get car assets - * Image paths are relative to https://images-static.iracing.com/ - */ - assets() { - return this.client.get("/data/car/assets"); - } - - get() { - return this.client.get("/data/car/get"); - } -} - -export default CarAPI; diff --git a/packages/api/src/api/data/constants/index.ts b/packages/api/src/api/data/constants/index.ts deleted file mode 100644 index 39bcbba..0000000 --- a/packages/api/src/api/data/constants/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NetworkClientProvider, IRacingAPIResponse } from "../../types"; - -export class ConstantsAPI extends NetworkClientProvider { - categories() { - return this.client.get("/data/constants/categories"); - } - - divisions() { - return this.client.get("/data/constants/divisions"); - } - - eventTypes() { - return this.client.get("/data/constants/event_types"); - } -} - -export default ConstantsAPI; diff --git a/packages/api/src/api/data/driver-stats/index.ts b/packages/api/src/api/data/driver-stats/index.ts deleted file mode 100644 index 3e474e0..0000000 --- a/packages/api/src/api/data/driver-stats/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { - NetworkClientProvider, - CategoryValue, - IRacingAPIResponse, -} from "../../types"; - -export class DriverStatsAPI extends NetworkClientProvider { - category({ category }: { category: CategoryValue }) { - return this.client.get( - `/data/driver_stats_by_category/${category}` - ); - } -} - -export default DriverStatsAPI; diff --git a/packages/api/src/api/data/hosted/index.ts b/packages/api/src/api/data/hosted/index.ts deleted file mode 100644 index de55287..0000000 --- a/packages/api/src/api/data/hosted/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { IRacingAPIResponse, NetworkClientProvider } from "../../types"; - -export class HostedAPI extends NetworkClientProvider { - /** - * Sessions that can be joined as a driver or spectator, and also includes - * non-league pending sessions for the user. - */ - combinedSessions({ packageId }: { packageId?: number } = {}) { - return this.client.get( - `/data/hosted/combined_sessions`, - { - params: { package_id: packageId }, - } - ); - } - - /** - * Sessions that can be joined as a driver. Without spectator and non-league - * pending sessions for the user. - */ - sessions() { - return this.client.get("/data/hosted/sessions"); - } -} - -export default HostedAPI; diff --git a/packages/api/src/api/data/index.ts b/packages/api/src/api/data/index.ts deleted file mode 100644 index 8b63149..0000000 --- a/packages/api/src/api/data/index.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { AxiosInstance } from "axios"; -import { NetworkClientProvider } from "../types"; -import { CarAPI } from "./car"; -import { CarClassAPI } from "./car-class"; -import { ConstantsAPI } from "./constants"; -import { DriverStatsAPI } from "./driver-stats"; -import { HostedAPI } from "./hosted"; -import { LeagueAPI } from "./league"; -import { LookupAPI } from "./lookup"; -import { MemberAPI } from "./member"; -import { ResultsAPI } from "./results"; -import { SeasonAPI } from "./season"; -import { SeriesAPI } from "./series"; -import { StatsAPI } from "./stats"; -import { TeamAPI } from "./team"; -import { TimeAttackAPI } from "./time-attack"; -import { TrackAPI } from "./track"; - -export class DataAPI extends NetworkClientProvider { - private _car: CarAPI; - get car() { - return this._car; - } - - private _carClass: CarClassAPI; - get carClass() { - return this._carClass; - } - - private _constants: ConstantsAPI; - get constants() { - return this._constants; - } - - private _driverStats: DriverStatsAPI; - get driverStats() { - return this._driverStats; - } - - private _hosted: HostedAPI; - get hosted() { - return this._hosted; - } - - private _league: LeagueAPI; - get league() { - return this._league; - } - - private _lookup: LookupAPI; - get lookup() { - return this._lookup; - } - - private _member: MemberAPI; - get member() { - return this._member; - } - - private _results: ResultsAPI; - get results() { - return this._results; - } - - private _season: SeasonAPI; - get season() { - return this._season; - } - - private _series: SeriesAPI; - get series() { - return this._series; - } - - private _stats: StatsAPI; - get stats() { - return this._stats; - } - - private _team: TeamAPI; - get team() { - return this._team; - } - - private _timeAttack: TimeAttackAPI; - get timeAttack() { - return this._timeAttack; - } - - private _track: TrackAPI; - get track() { - return this._track; - } - - constructor(client: AxiosInstance) { - super(client); - this._car = new CarAPI(client); - this._carClass = new CarClassAPI(client); - this._constants = new ConstantsAPI(client); - this._driverStats = new DriverStatsAPI(client); - this._hosted = new HostedAPI(client); - this._league = new LeagueAPI(client); - this._lookup = new LookupAPI(client); - this._member = new MemberAPI(client); - this._results = new ResultsAPI(client); - this._season = new SeasonAPI(client); - this._series = new SeriesAPI(client); - this._stats = new StatsAPI(client); - this._team = new TeamAPI(client); - this._timeAttack = new TimeAttackAPI(client); - this._track = new TrackAPI(client); - } - - async doc() { - return this.client.get("/data/doc"); - } -} diff --git a/packages/api/src/api/data/league/index.ts b/packages/api/src/api/data/league/index.ts deleted file mode 100644 index 93f43ae..0000000 --- a/packages/api/src/api/data/league/index.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { IRacingAPIResponse, NetworkClientProvider } from "../../types"; - -export class LeagueAPI extends NetworkClientProvider { - directory({ - search, - tag, - restrictToMember, - restrictToRecruiting, - restrictToFriends, - restrictToWatched, - minimumRosterCount, - maximumRosterCount, - lowerbound, - upperbound, - sort, - order, - }: { - search?: string; - tag?: string; - restrictToMember?: boolean; - restrictToRecruiting?: boolean; - restrictToFriends?: boolean; - restrictToWatched?: boolean; - minimumRosterCount?: number; - maximumRosterCount?: number; - lowerbound?: number; - upperbound?: number; - sort?: "relevance" | "leaguename" | "displayname" | "rostercount"; - order?: "asc" | "desc"; - } = {}) { - return this.client.get("/data/league/directory", { - params: { - search, - tag, - restrict_to_member: restrictToMember, - restrict_to_recruiting: restrictToRecruiting, - restrict_to_friends: restrictToFriends, - restrict_to_watched: restrictToWatched, - minimum_roster_count: minimumRosterCount, - maximum_roster_count: maximumRosterCount, - lowerbound, - upperbound, - sort, - order, - }, - }); - } - - customerLeagueSessions({ - mine, - packageId, - }: { - mine?: boolean; - packageId?: number; - } = {}) { - return this.client.get( - "/data/league/cust_league_sessions", - { - params: { mine, package_id: packageId }, - } - ); - } - - get({ - leagueId, - includeLicenses, - }: { - leagueId: number; - includeLicenses?: boolean; - }) { - return this.client.get("/data/league/get", { - params: { league_id: leagueId, include_licenses: includeLicenses }, - }); - } - - getPointsSystems({ - leagueId, - seasonId, - }: { - leagueId: number; - seasonId?: number; - }) { - return this.client.get( - "/data/league/get_points_systems", - { - params: { league_id: leagueId, season_id: seasonId }, - } - ); - } - - membership({ - customerId, - includeLeague, - }: { customerId?: number; includeLeague?: boolean } = {}) { - return this.client.get("/data/league/membership", { - params: { cust_id: customerId, include_league: includeLeague }, - }); - } - - roster({ - leagueId, - includeLicenses, - }: { - leagueId: number; - includeLicenses?: boolean; - }) { - return this.client.get("/data/league/roster", { - params: { league_id: leagueId, include_licenses: includeLicenses }, - }); - } - - seasons({ leagueId, retired }: { leagueId: number; retired?: boolean }) { - return this.client.get("/data/league/seasons", { - params: { league_id: leagueId, retired: retired }, - }); - } - - seasonStandings({ - leagueId, - seasonId, - carClassId, - carId, - }: { - leagueId: number; - seasonId: number; - carClassId?: number; - carId?: number; - }) { - return this.client.get( - "/data/league/season_standings", - { - params: { - league_id: leagueId, - season_id: seasonId, - car_class_id: carClassId, - car_id: carId, - }, - } - ); - } - - seasonSessions({ - leagueId, - seasonId, - resultsOnly, - }: { - leagueId: number; - seasonId: number; - resultsOnly?: boolean; - }) { - return this.client.get("/data/league/season_sessions", { - params: { - league_id: leagueId, - season_id: seasonId, - results_only: resultsOnly, - }, - }); - } -} - -export default LeagueAPI; diff --git a/packages/api/src/api/data/lookup/index.ts b/packages/api/src/api/data/lookup/index.ts deleted file mode 100644 index a2a7f8c..0000000 --- a/packages/api/src/api/data/lookup/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { NetworkClientProvider, IRacingAPIResponse } from "../../types"; - -export class LookupAPI extends NetworkClientProvider { - countries() { - return this.client.get("/data/lookup/countries"); - } - - drivers({ searchTerm, leagueId }: { searchTerm: string; leagueId?: number }) { - return this.client.get("/data/lookup/drivers", { - params: { search_term: searchTerm, league_id: leagueId }, - }); - } - - flairs() { - return this.client.get("/data/lookup/flairs"); - } - - get(params: Record) { - return this.client.get("/data/lookup/get", { params }); - } - - licenses() { - return this.client.get("/data/lookup/licenses"); - } -} - -export default LookupAPI; diff --git a/packages/api/src/api/data/member/index.ts b/packages/api/src/api/data/member/index.ts deleted file mode 100644 index cf9d9c1..0000000 --- a/packages/api/src/api/data/member/index.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { - CategoryIdValue, - ChartTypeValue, - IRacingAPIResponse, - NetworkClientProvider, -} from "../../types"; - -export class MemberAPI extends NetworkClientProvider { - awards({ customerId }: { customerId?: number } = {}) { - return this.client.get("/data/member/awards", { - params: { cust_id: customerId }, - }); - } - - awardInstances({ - customerId, - awardId, - }: { - customerId?: number; - awardId: number; - }) { - return this.client.get("/data/member/award_instances", { - params: { cust_id: customerId, award_id: awardId }, - }); - } - - chartData({ - customerId, - categoryId, - chartType, - }: { - customerId?: number; - categoryId: CategoryIdValue; - chartType: ChartTypeValue; - }) { - return this.client.get("/data/member/chart_data", { - params: { - cust_id: customerId, - category_id: categoryId, - chart_type: chartType, - }, - }); - } - - get({ - customerIds, - includeLicenses, - }: { - customerIds: number[]; - includeLicenses?: boolean; - }) { - return this.client.get("/data/member/get", { - params: { cust_ids: customerIds, include_licenses: includeLicenses }, - }); - } - - info() { - return this.client.get("/data/member/info"); - } - - participationCredits() { - return this.client.get( - "/data/member/participation_credits" - ); - } - - profile({ customerId }: { customerId?: number } = {}) { - return this.client.get("/data/member/profile", { - params: { cust_id: customerId }, - }); - } -} - -export default MemberAPI; diff --git a/packages/api/src/api/data/results/index.ts b/packages/api/src/api/data/results/index.ts deleted file mode 100644 index 13517ce..0000000 --- a/packages/api/src/api/data/results/index.ts +++ /dev/null @@ -1,190 +0,0 @@ -import { - CategoryIdValue, - EventTypeValue, - IRacingAPIResponse, - NetworkClientProvider, -} from "../../types"; - -export class ResultsAPI extends NetworkClientProvider { - get({ - subsessionId, - includeLicenses, - }: { - subsessionId: number; - includeLicenses?: boolean; - }) { - return this.client.get("/data/results/get", { - params: { - subsession_id: subsessionId, - include_licenses: includeLicenses, - }, - }); - } - - eventLog({ - subsessionId, - simsessionNumber, - }: { - subsessionId: number; - simsessionNumber: number; - }) { - return this.client.get("/data/results/event_log", { - params: { - subsession_id: subsessionId, - simsession_number: simsessionNumber, - }, - }); - } - - lapChartData({ - subsessionId, - simsessionNumber, - }: { - subsessionId: number; - simsessionNumber: number; - }) { - return this.client.get("/data/results/lap_chart_data", { - params: { - subsession_id: subsessionId, - simsession_number: simsessionNumber, - }, - }); - } - - lapData({ - subsessionId, - simsessionNumber, - customerId, - teamId, - }: { - subsessionId: number; - simsessionNumber: number; - customerId?: number; - teamId?: number; - }) { - return this.client.get("/data/results/lap_data", { - params: { - subsession_id: subsessionId, - simsession_number: simsessionNumber, - cust_id: customerId, - team_id: teamId, - }, - }); - } - - searchHosted({ - startRangeBegin, - startRangeEnd, - finishRangeBegin, - finishRangeEnd, - customerId, - teamId, - hostCustomerId, - sessionName, - leagueId, - leagueSeasonId, - carId, - trackId, - categoryIds, - }: { - startRangeBegin?: Date; - startRangeEnd?: Date; - finishRangeBegin?: Date; - finishRangeEnd?: Date; - customerId?: number; - teamId?: number; - hostCustomerId?: number; - sessionName?: string; - leagueId?: number; - leagueSeasonId?: number; - carId?: number; - trackId?: number; - categoryIds?: CategoryIdValue[]; - } = {}) { - return this.client.get("/data/results/search_hosted", { - params: { - start_range_begin: startRangeBegin?.toUTCString(), - start_range_end: startRangeEnd?.toUTCString(), - finish_range_begin: finishRangeBegin?.toUTCString(), - finish_range_end: finishRangeEnd?.toUTCString(), - cust_id: customerId, - team_id: teamId, - host_cust_id: hostCustomerId, - session_name: sessionName, - league_id: leagueId, - league_season_id: leagueSeasonId, - car_id: carId, - track_id: trackId, - category_ids: categoryIds, - }, - }); - } - - searchSeries({ - seasonYear, - seasonQuarter, - startRangeBegin, - startRangeEnd, - finishRangeBegin, - finishRangeEnd, - customerId, - teamId, - seriesId, - raceWeekNumber, - officialOnly, - eventTypes, - categoryIds, - }: { - seasonYear?: number; - seasonQuarter?: number; - startRangeBegin?: Date; - startRangeEnd?: Date; - finishRangeBegin?: Date; - finishRangeEnd?: Date; - customerId?: number; - teamId?: number; - seriesId?: number; - raceWeekNumber?: number; - officialOnly?: boolean; - eventTypes?: EventTypeValue[]; - categoryIds?: CategoryIdValue[]; - }) { - return this.client.get("/data/results/search_series", { - params: { - season_year: seasonYear, - season_quarter: seasonQuarter, - start_range_begin: startRangeBegin?.toUTCString(), - start_range_end: startRangeEnd?.toUTCString(), - finish_range_begin: finishRangeBegin?.toUTCString(), - finish_range_end: finishRangeEnd?.toUTCString(), - cust_id: customerId, - team_id: teamId, - series_id: seriesId, - race_week_num: raceWeekNumber, - official_only: officialOnly, - event_types: eventTypes, - category_ids: categoryIds, - }, - }); - } - - seasonResults({ - seasonId, - eventType, - raceWeekNumber, - }: { - seasonId: number; - eventType?: EventTypeValue; - raceWeekNumber: number; - }) { - return this.client.get("/data/results/season_results", { - params: { - season_id: seasonId, - event_type: eventType, - race_week_num: raceWeekNumber, - }, - }); - } -} - -export default ResultsAPI; diff --git a/packages/api/src/api/data/season/index.ts b/packages/api/src/api/data/season/index.ts deleted file mode 100644 index 7bc17d2..0000000 --- a/packages/api/src/api/data/season/index.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { - EventType, - IRacingAPIResponse, - NetworkClientProvider, -} from "../../types"; - -export class SeasonAPI extends NetworkClientProvider { - list({ - seasonYear, - seasonQuarter, - }: { - seasonYear: number; - seasonQuarter: number; - }) { - return this.client.get("/data/season/list", { - params: { season_year: seasonYear, season_quarter: seasonQuarter }, - }); - } - - raceGuide({ - from, - includeEndAfterFrom, - }: { - from?: Date; - includeEndAfterFrom?: boolean; - }) { - return this.client.get("/data/season/race_guide", { - params: { from, include_end_after_from: includeEndAfterFrom }, - }); - } - - spectatorSubsessionIds({ eventTypes }: { eventTypes?: EventType[] }) { - return this.client.get( - "/data/season/spectator_subsessionids", - { - params: { event_types: eventTypes }, - } - ); - } - - spectatorSubsessionIdsDetail({ - eventTypes, - seasonIds, - }: { - eventTypes?: EventType[]; - seasonIds?: number[]; - }) { - return this.client.get( - "/data/season/spectator_subsessionids_detail", - { - params: { event_types: eventTypes, season_ids: seasonIds }, - } - ); - } -} - -export default SeasonAPI; diff --git a/packages/api/src/api/data/series/index.ts b/packages/api/src/api/data/series/index.ts deleted file mode 100644 index bc62ca5..0000000 --- a/packages/api/src/api/data/series/index.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { IRacingAPIResponse, NetworkClientProvider } from "../../types"; - -export class SeriesAPI extends NetworkClientProvider { - /** - * Note: image paths are relative to https://images-static.iracing.com/ - */ - assets() { - return this.client.get("/data/series/assets"); - } - - get() { - return this.client.get("/data/series/get"); - } - - pastSeasons({ seriesId }: { seriesId: number }) { - return this.client.get("/data/series/past_seasons", { - params: { series_id: seriesId }, - }); - } - - seasons({ - includeSeries, - seasonYear, - seasonQuarter, - }: { - includeSeries?: boolean; - seasonYear?: number; - seasonQuarter?: number; - } = {}) { - return this.client.get("/data/series/seasons", { - params: { - include_series: includeSeries, - season_year: seasonYear, - season_quarter: seasonQuarter, - }, - }); - } - - seasonList({ - includeSeries, - seasonYear, - seasonQuarter, - }: { - includeSeries?: boolean; - seasonYear?: number; - seasonQuarter?: number; - } = {}) { - return this.client.get("/data/series/season_list", { - params: { - include_series: includeSeries, - season_year: seasonYear, - season_quarter: seasonQuarter, - }, - }); - } - - seasonSchedule({ seasonId }: { seasonId: number }) { - return this.client.get("/data/series/season_schedule", { - params: { season_id: seasonId }, - }); - } - - statsSeries() { - return this.client.get("/data/series/stats_series"); - } -} - -export default SeriesAPI; diff --git a/packages/api/src/api/data/stats/index.ts b/packages/api/src/api/data/stats/index.ts deleted file mode 100644 index 4dc0d3d..0000000 --- a/packages/api/src/api/data/stats/index.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { - Division, - IRacingAPIResponse, - NetworkClientProvider, -} from "../../types"; - -export class StatsAPI extends NetworkClientProvider { - memberBests({ - customerId, - carId, - }: { customerId?: number; carId?: number } = {}) { - return this.client.get("/data/stats/member_bests", { - params: { - cust_id: customerId, - car_id: carId, - }, - }); - } - - memberCareer({ customerId }: { customerId?: number } = {}) { - return this.client.get("/data/stats/member_career", { - params: { - cust_id: customerId, - }, - }); - } - - memberDivision({ - seasonId, - eventType, - }: { - seasonId: number; - eventType: 4 | 5; - }) { - return this.client.get("/data/stats/member_division", { - params: { - season_id: seasonId, - event_type: eventType, - }, - }); - } - - memberRecap({ - customerId, - year, - season, - }: { - customerId?: number; - year?: number; - season?: 1 | 2 | 3 | 4; - }) { - return this.client.get("/data/stats/member_recap", { - params: { - cust_id: customerId, - year, - season, - }, - }); - } - - memberRecentRaces({ customerId }: { customerId?: number } = {}) { - return this.client.get( - "/data/stats/member_recent_races", - { - params: { - cust_id: customerId, - }, - } - ); - } - - memberSummary({ customerId }: { customerId?: number } = {}) { - return this.client.get("/data/stats/member_summary", { - params: { - cust_id: customerId, - }, - }); - } - - memberYearly({ customerId }: { customerId?: number } = {}) { - return this.client.get("/data/stats/member_yearly", { - params: { - cust_id: customerId, - }, - }); - } - - seasonDriverStandings({ - seasonId, - carClassId, - raceWeekNumber, - division, - }: { - seasonId: number; - carClassId: number; - raceWeekNumber?: number; - division?: Division; - }) { - return this.client.get( - "/data/stats/season_driver_standings", - { - params: { - season_id: seasonId, - car_class_id: carClassId, - division, - race_week_num: raceWeekNumber, - }, - } - ); - } - - seasonSupersessionStandings({ - seasonId, - carClassId, - raceWeekNumber, - division, - }: { - seasonId: number; - carClassId: number; - raceWeekNumber?: number; - division?: Division; - }) { - return this.client.get( - "/data/stats/season_supersession_standings", - { - params: { - season_id: seasonId, - car_class_id: carClassId, - division, - race_week_num: raceWeekNumber, - }, - } - ); - } - - seasonTeamStandings({ - seasonId, - carClassId, - raceWeekNumber, - }: { - seasonId: number; - carClassId: number; - raceWeekNumber?: number; - }) { - return this.client.get( - "/data/stats/season_team_standings", - { - params: { - season_id: seasonId, - car_class_id: carClassId, - race_week_num: raceWeekNumber, - }, - } - ); - } - - seasonTimeTrialStandings({ - seasonId, - carClassId, - raceWeekNumber, - division, - }: { - seasonId: number; - carClassId: number; - raceWeekNumber?: number; - division?: Division; - }) { - return this.client.get( - "/data/stats/season_time_trial_standings", - { - params: { - season_id: seasonId, - car_class_id: carClassId, - division, - race_week_num: raceWeekNumber, - }, - } - ); - } - - seasonTimeTrialResults({ - seasonId, - carClassId, - raceWeekNumber, - division, - }: { - seasonId: number; - carClassId: number; - raceWeekNumber: number; - division?: Division; - }) { - return this.client.get( - "/data/stats/season_time_trial_results", - { - params: { - season_id: seasonId, - car_class_id: carClassId, - race_week_num: raceWeekNumber, - division, - }, - } - ); - } - - seasonQualifyResults({ - seasonId, - carClassId, - raceWeekNumber, - division, - }: { - seasonId: number; - carClassId: number; - raceWeekNumber: number; - division?: Division; - }) { - return this.client.get( - "/data/stats/season_qualify_results", - { - params: { - season_id: seasonId, - car_class_id: carClassId, - race_week_num: raceWeekNumber, - division, - }, - } - ); - } - - worldRecords({ - carId, - trackId, - seasonYear, - seasonQuarter, - }: { - carId: number; - trackId: number; - seasonYear?: number; - seasonQuarter?: number; - }) { - return this.client.get("/data/stats/world_records", { - params: { - carId, - trackId, - seasonYear, - seasonQuarter, - }, - }); - } -} - -export default StatsAPI; diff --git a/packages/api/src/api/data/team/index.ts b/packages/api/src/api/data/team/index.ts deleted file mode 100644 index f5a2219..0000000 --- a/packages/api/src/api/data/team/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { IRacingAPIResponse, NetworkClientProvider } from "../../types"; - -export class TeamAPI extends NetworkClientProvider { - get({ - teamId, - includeLicenses, - }: { - teamId: number; - includeLicenses?: boolean; - }) { - return this.client.get(`/data/team/get`, { - params: { team_id: teamId, include_licenses: includeLicenses }, - }); - } - - membership() { - return this.client.get("/data/team/membership"); - } -} - -export default TeamAPI; diff --git a/packages/api/src/api/data/time-attack/index.ts b/packages/api/src/api/data/time-attack/index.ts deleted file mode 100644 index 80f3d9a..0000000 --- a/packages/api/src/api/data/time-attack/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { IRacingAPIResponse, NetworkClientProvider } from "../../types"; - -export class TimeAttackAPI extends NetworkClientProvider { - memberSeasonResults({ seasonId }: { seasonId: number }) { - return this.client.get( - `/data/time_attack/member_season_results`, - { - params: { ta_comp_season_id: seasonId }, - } - ); - } -} - -export default TimeAttackAPI; diff --git a/packages/api/src/api/data/track/index.ts b/packages/api/src/api/data/track/index.ts deleted file mode 100644 index f27daec..0000000 --- a/packages/api/src/api/data/track/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { IRacingAPIResponse, NetworkClientProvider } from "../../types"; - -export class TrackAPI extends NetworkClientProvider { - /** - * Get track assets - * Image paths are relative to https://images-static.iracing.com/ - */ - assets() { - return this.client.get("/data/track/assets"); - } - - get() { - return this.client.get("/data/track/get"); - } -} - -export default TrackAPI; diff --git a/packages/api/src/api/index.ts b/packages/api/src/api/index.ts deleted file mode 100644 index de95683..0000000 --- a/packages/api/src/api/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { AxiosInstance } from "axios"; -import { AuthAPI } from "./auth"; -import { DataAPI } from "./data"; -import { NetworkClientProvider } from "./types"; - -export * from "./types"; - -export class IRacingAPI extends NetworkClientProvider { - private _auth: AuthAPI; - get auth() { - return this._auth; - } - - private _data: DataAPI; - get data() { - return this._data; - } - - /** - * Initializes an IRacingAPI instance, using the provided client. - * @param client The Axios client to use for requests - */ - constructor(client: AxiosInstance) { - super(client); - this._auth = new AuthAPI(client); - this._data = new DataAPI(client); - } -} - -export default IRacingAPI; diff --git a/packages/api/src/api/types.ts b/packages/api/src/api/types.ts deleted file mode 100644 index 3f67bd7..0000000 --- a/packages/api/src/api/types.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { AxiosInstance } from "axios"; - -export class NetworkClientProvider { - constructor(private _client: AxiosInstance) {} - - get client() { - return this._client; - } -} - -export type IRacingAPIResponse = { - // A link to the cached data - link: string; - // An ISO 8601 date string - expires: string; -}; - -// Divisions are 0-based: 0 is Division 1, 10 is Rookie. -// See /data/constants/divisons for more information. -export type Division = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; -export const isDivision = (value: unknown): value is Division => - typeof value === "number" && value >= 0 && value <= 10; -export const assertDivision = (value: unknown): asserts value is Division => { - if (!isDivision(value)) { - throw new Error(`Invalid division: ${value}`); - } -}; - -export enum CategoryId { - Oval = 1, - Road, - DirtOval, - DirtRoad, -} - -export type CategoryIdValue = `${CategoryId}`; -export type CategoryIdKey = keyof typeof CategoryId; -export const CATEGORY_ID_LABELS = Object.keys(CategoryId); -export const isCategoryId = (value: unknown): value is CategoryIdValue => { - return typeof value === "number" && value >= 1 && value <= 4; -}; -export const assertCategoryId = ( - value: unknown -): asserts value is CategoryIdValue => { - if (!isCategoryId(value)) { - throw new Error(`Invalid category ID: ${value}`); - } -}; - -export enum ChartType { - iRating = 1, - TTRating, - LicenseRating, -} - -export type ChartTypeValue = `${ChartType}`; -export type ChartTypeKey = keyof typeof ChartType; -export const CHART_TYPE_LABELS = Object.keys(ChartType); -export const isChartType = (value: unknown): value is ChartTypeValue => { - return typeof value === "number" && value >= 1 && value <= 3; -}; -export const assertChartType = ( - value: unknown -): asserts value is ChartTypeValue => { - if (!isChartType(value)) { - throw new Error(`Invalid chart type: ${value}`); - } -}; - -export enum EventType { - Practice = 2, - Qualify, - TimeTrial, - Race, -} - -export type EventTypeValue = `${EventType}`; -export type EventTypeKey = keyof typeof EventType; -export const EVENT_TYPE_LABELS = Object.keys(EventType); -export const isEventType = (value: unknown): value is EventTypeValue => { - return typeof value === "number" && value >= 2 && value <= 5; -}; -export const assertEventType = ( - value: unknown -): asserts value is EventTypeValue => { - if (!isEventType(value)) { - throw new Error(`Invalid event type: ${value}`); - } -}; - -export enum Category { - Road = "road", - Oval = "oval", - DirtRoad = "dirt_road", - DirtOval = "dirt_oval", - SportsCar = "sports_car", - FormulaCar = "formula_car", -} - -export type CategoryValue = `${Category}`; -export type CategoryKey = keyof typeof Category; -export const CATEGORY_LABELS: string[] = Object.keys(Category); -export const CATEGORY_VALUES: string[] = Object.values(Category); - -export const isCategory = (value: string): value is CategoryValue => - CATEGORY_VALUES.includes(value as CategoryValue); - -export const assertCategory = ( - value: string -): asserts value is CategoryValue => { - if (!isCategory(value)) { - throw new Error(`Invalid category: ${value}`); - } -}; diff --git a/packages/api/src/client.ts b/packages/api/src/client.ts deleted file mode 100644 index 40a0719..0000000 --- a/packages/api/src/client.ts +++ /dev/null @@ -1,538 +0,0 @@ -import axios, { AxiosInstance } from "axios"; -import { wrapper } from "axios-cookiejar-support"; -import { CookieJar } from "tough-cookie"; -import { IRacingAPI, NetworkClientProvider } from "./api"; -import { IRacingAuthenticationError } from "./types"; -import { allCookiesValid, fetchValidLinkData } from "./util"; - -const DEFAULT_IRACING_DATA_API_URL = "https://members-ng.iracing.com/"; - -/** - * A wrapper class for the IRacingAPI that provides convenience methods for - * interacting with the API. - */ -export class IRacingAPIClient extends NetworkClientProvider { - private _api: IRacingAPI; - get api() { - return this._api; - } - - constructor(client: AxiosInstance) { - super(client); - this._api = new IRacingAPI(client); - } - - // /auth - - /** - * Authenticate with the iRacing API. - * !!!: This must be called before making requests to the `/data` endpoints. - * @param input: An object containing the username and password - * @returns If successful, the response data from the API - * @throws IRacingAuthenticationError if the authentication fails - */ - async authenticate(input: Parameters[0]) { - const response = await this.api.auth.auth(input); - if (response.status === 200) { - return response.data; - } - - throw new IRacingAuthenticationError(); - } - - // /data - - async doc() { - const response = await this.api.data.doc(); - return response.data; - } - - // /data/car - - async carAssets() { - const response = await this.api.data.car.assets(); - return fetchValidLinkData(response.data); - } - - async carGet() { - const response = await this.api.data.car.get(); - return fetchValidLinkData(response.data); - } - - // /data/carclass - - async carClassGet() { - const response = await this.api.data.carClass.get(); - return fetchValidLinkData(response.data); - } - - // /data/constants - - async constantsCategories() { - const response = await this.api.data.constants.categories(); - return fetchValidLinkData(response.data); - } - - async constantsDivisions() { - const response = await this.api.data.constants.divisions(); - return fetchValidLinkData(response.data); - } - - async constantsEventTypes() { - const response = await this.api.data.constants.eventTypes(); - return fetchValidLinkData(response.data); - } - - // /data/driver_stats_by_category - - async driverStatsByCategory( - input: Parameters[0] - ) { - const response = await this.api.data.driverStats.category(input); - return fetchValidLinkData(response.data); - } - - // /data/hosted - - async hostedCombinedSessions( - input: Parameters[0] - ) { - const response = await this.api.data.hosted.combinedSessions(input); - return fetchValidLinkData(response.data); - } - - async hostedSessions() { - const response = await this.api.data.hosted.sessions(); - return fetchValidLinkData(response.data); - } - - // /data/league - - async leagueDirectory( - input: Parameters[0] = {} - ) { - const response = await this.api.data.league.directory(input); - return fetchValidLinkData(response.data); - } - - async leagueCustomerLeagueSessions( - input: Parameters< - IRacingAPI["data"]["league"]["customerLeagueSessions"] - >[0] = {} - ) { - const response = await this.api.data.league.customerLeagueSessions(input); - return fetchValidLinkData(response.data); - } - - async leagueGet(input: Parameters[0]) { - const response = await this.api.data.league.get(input); - return fetchValidLinkData(response.data); - } - - async leagueGetPointsSystems( - input: Parameters[0] - ) { - const response = await this.api.data.league.getPointsSystems(input); - return fetchValidLinkData(response.data); - } - - async leagueMembership( - input: Parameters[0] - ) { - const response = await this.api.data.league.membership(input); - return fetchValidLinkData(response.data); - } - - async leagueRoster( - input: Parameters[0] - ) { - const response = await this.api.data.league.roster(input); - return fetchValidLinkData(response.data); - } - - async leagueSeasons( - input: Parameters[0] - ) { - const response = await this.api.data.league.seasons(input); - return fetchValidLinkData(response.data); - } - - async leagueSeasonStandings( - input: Parameters[0] - ) { - const response = await this.api.data.league.seasonStandings(input); - return fetchValidLinkData(response.data); - } - - async leagueSeasonSessions( - input: Parameters[0] - ) { - const response = await this.api.data.league.seasonSessions(input); - return fetchValidLinkData(response.data); - } - - // /data/lookup - - async lookupCountries() { - const response = await this.api.data.lookup.countries(); - return fetchValidLinkData(response.data); - } - - async lookupDrivers( - input: Parameters[0] - ) { - const response = await this.api.data.lookup.drivers(input); - return fetchValidLinkData(response.data); - } - - async lookupGet(input: Parameters[0]) { - const response = await this.api.data.lookup.get(input); - return fetchValidLinkData(response.data); - } - - async lookupLicenses() { - const response = await this.api.data.lookup.licenses(); - return fetchValidLinkData(response.data); - } - - // /data/member - - async memberAwards( - input: Parameters[0] - ) { - const response = await this.api.data.member.awards(input); - return fetchValidLinkData(response.data); - } - - async memberAwardInstances( - input: Parameters[0] - ) { - const response = await this.api.data.member.awardInstances(input); - return fetchValidLinkData(response.data); - } - - async memberChartData( - input: Parameters[0] - ) { - const response = await this.api.data.member.chartData(input); - return fetchValidLinkData(response.data); - } - - async memberGet(input: Parameters[0]) { - const response = await this.api.data.member.get(input); - return fetchValidLinkData(response.data); - } - - async memberInfo() { - const response = await this.api.data.member.info(); - return fetchValidLinkData(response.data); - } - - async memberParticipationCredits() { - const response = await this.api.data.member.participationCredits(); - return fetchValidLinkData(response.data); - } - - async memberProfile( - input: Parameters[0] - ) { - const response = await this.api.data.member.profile(input); - return fetchValidLinkData(response.data); - } - - // /data/results - - async resultsGet(input: Parameters[0]) { - const response = await this.api.data.results.get(input); - return fetchValidLinkData(response.data); - } - - async resultsEventLog( - input: Parameters[0] - ) { - const response = await this.api.data.results.eventLog(input); - return fetchValidLinkData(response.data); - } - - async resultsLapChartData( - input: Parameters[0] - ) { - const response = await this.api.data.results.lapChartData(input); - return fetchValidLinkData(response.data); - } - - async resultsLapData( - input: Parameters[0] - ) { - const response = await this.api.data.results.lapData(input); - return fetchValidLinkData(response.data); - } - - async resultsSearchHosted( - input: Parameters[0] = {} - ) { - const response = await this.api.data.results.searchHosted(input); - return fetchValidLinkData(response.data); - } - - async resultsSearchSeries( - input: Parameters[0] - ) { - const response = await this.api.data.results.searchSeries(input); - return fetchValidLinkData(response.data); - } - - async resultsSeasonResults( - input: Parameters[0] - ) { - const response = await this.api.data.results.seasonResults(input); - return fetchValidLinkData(response.data); - } - - // /data/season - - async seasonList(input: Parameters[0]) { - const response = await this.api.data.season.list(input); - return fetchValidLinkData(response.data); - } - - async seasonRaceGuide( - input: Parameters[0] - ) { - const response = await this.api.data.season.raceGuide(input); - return fetchValidLinkData(response.data); - } - - async seasonSpectatorSubsessionIds( - input: Parameters[0] - ) { - const response = await this.api.data.season.spectatorSubsessionIds(input); - return fetchValidLinkData(response.data); - } - - async seasonSpectatorSubsessionIdsDetail( - input: Parameters< - IRacingAPI["data"]["season"]["spectatorSubsessionIdsDetail"] - >[0] - ) { - const response = - await this.api.data.season.spectatorSubsessionIdsDetail(input); - return fetchValidLinkData(response.data); - } - - // /data/series - - async seriesAssets() { - const response = await this.api.data.series.assets(); - return fetchValidLinkData(response.data); - } - - async seriesGet() { - const response = await this.api.data.series.get(); - return fetchValidLinkData(response.data); - } - - async seriesPastSeasons( - input: Parameters[0] - ) { - const response = await this.api.data.series.pastSeasons(input); - return fetchValidLinkData(response.data); - } - - async seriesSeasons( - input: Parameters[0] - ) { - const response = await this.api.data.series.seasons(input); - return fetchValidLinkData(response.data); - } - - async seriesStatsSeries() { - const response = await this.api.data.series.statsSeries(); - return fetchValidLinkData(response.data); - } - - // /data/stats - - async statsMemberBests( - input: Parameters[0] - ) { - const response = await this.api.data.stats.memberBests(input); - return fetchValidLinkData(response.data); - } - - async statsMemberCareer( - input: Parameters[0] - ) { - const response = await this.api.data.stats.memberCareer(input); - return fetchValidLinkData(response.data); - } - - async statsMemberDivision( - input: Parameters[0] - ) { - const response = await this.api.data.stats.memberDivision(input); - return fetchValidLinkData(response.data); - } - - async statsMemberRecap( - input: Parameters[0] - ) { - const response = await this.api.data.stats.memberRecap(input); - return fetchValidLinkData(response.data); - } - - async statsMemberRecentRaces( - input: Parameters[0] - ) { - const response = await this.api.data.stats.memberRecentRaces(input); - return fetchValidLinkData(response.data); - } - - async statsMemberSummary( - input: Parameters[0] - ) { - const response = await this.api.data.stats.memberSummary(input); - return fetchValidLinkData(response.data); - } - - async statsMemberYearly( - input: Parameters[0] - ) { - const response = await this.api.data.stats.memberYearly(input); - return fetchValidLinkData(response.data); - } - - async statsSeasonDriverStandings( - input: Parameters[0] - ) { - const response = await this.api.data.stats.seasonDriverStandings(input); - return fetchValidLinkData(response.data); - } - - async statsSeasonSupersessionStandings( - input: Parameters< - IRacingAPI["data"]["stats"]["seasonSupersessionStandings"] - >[0] - ) { - const response = - await this.api.data.stats.seasonSupersessionStandings(input); - return fetchValidLinkData(response.data); - } - - async statsSeasonTeamStandings( - input: Parameters[0] - ) { - const response = await this.api.data.stats.seasonTeamStandings(input); - return fetchValidLinkData(response.data); - } - - async statsSeasonTimeTrialStandings( - input: Parameters< - IRacingAPI["data"]["stats"]["seasonTimeTrialStandings"] - >[0] - ) { - const response = await this.api.data.stats.seasonTimeTrialStandings(input); - return fetchValidLinkData(response.data); - } - - async statsSeasonTimeTrialResults( - input: Parameters[0] - ) { - const response = await this.api.data.stats.seasonTimeTrialResults(input); - return fetchValidLinkData(response.data); - } - - async statsSeasonQualifyResults( - input: Parameters[0] - ) { - const response = await this.api.data.stats.seasonQualifyResults(input); - return fetchValidLinkData(response.data); - } - - async statsWorldRecords( - input: Parameters[0] - ) { - const response = await this.api.data.stats.worldRecords(input); - return fetchValidLinkData(response.data); - } - - // /data/team - - async teamGet(input: Parameters[0]) { - const response = await this.api.data.team.get(input); - return fetchValidLinkData(response.data); - } - - async teamMembership() { - const response = await this.api.data.team.membership(); - return fetchValidLinkData(response.data); - } - - // /data/time_attack - - async timeAttackMemberSeasonResults( - input: Parameters< - IRacingAPI["data"]["timeAttack"]["memberSeasonResults"] - >[0] - ) { - const response = await this.api.data.timeAttack.memberSeasonResults(input); - return fetchValidLinkData(response.data); - } - - // /data/track - - async trackAssets() { - const response = await this.api.data.track.assets(); - return fetchValidLinkData(response.data); - } - - async trackGet() { - const response = await this.api.data.track.get(); - return fetchValidLinkData(response.data); - } -} - -export class IRacingAPISessionClient extends IRacingAPIClient { - get cookieJar() { - return this._cookieJar; - } - - constructor(private _cookieJar: CookieJar = new CookieJar()) { - const client = wrapper( - axios.create({ - baseURL: DEFAULT_IRACING_DATA_API_URL, - withCredentials: true, - jar: _cookieJar, - headers: { - "Content-Type": "application/json", - }, - }) - ); - - super(client); - } - - /** - * Checks if we have a valid session and returns the email of the currently logged in user. - * @returns the email of the currently logged in user or null - */ - whoami(): string | null { - const cookies = this.cookieJar.getCookiesSync(DEFAULT_IRACING_DATA_API_URL); - if (allCookiesValid(cookies)) { - const authTokenCookie = cookies.find( - (cookie) => cookie.key === "authtoken_members" - ); - - if (authTokenCookie) { - const { authtoken: { email = null } = {} } = - JSON.parse(decodeURIComponent(authTokenCookie.value)) || {}; - - return email; - } - } - - return null; - } -} - -export default IRacingAPIClient; diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts deleted file mode 100644 index c8c0ca9..0000000 --- a/packages/api/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./types"; -export * from "./client"; -export { hashPassword } from "./util"; -export { default } from "./client"; diff --git a/packages/api/src/types.ts b/packages/api/src/types.ts deleted file mode 100644 index 1943396..0000000 --- a/packages/api/src/types.ts +++ /dev/null @@ -1,25 +0,0 @@ -export * from "./api/types"; - -export class IRacingAuthenticationError extends Error { - constructor() { - super("Failed to authenticate with iRacing."); - } -} - -export class InvalidResponseData extends Error { - constructor() { - super("Invalid response data"); - } -} - -export class InvalidSessionError extends Error { - constructor() { - super("You are not authenticated. Please run `auth`."); - } -} - -export class CacheExpiredError extends Error { - constructor() { - super("Cached data has expired"); - } -} diff --git a/packages/api/src/util.ts b/packages/api/src/util.ts deleted file mode 100644 index fd0e7d8..0000000 --- a/packages/api/src/util.ts +++ /dev/null @@ -1,40 +0,0 @@ -import crypto from "node:crypto"; -import axios, { AxiosInstance } from "axios"; -import { Cookie } from "tough-cookie"; -import { IRacingAPIResponse } from "./api/types"; -import { CacheExpiredError, InvalidResponseData } from "./types"; - -/** - * Compute the Base64‑encoded SHA‑256 hash of (password + email.toLowerCase()). - */ -export async function hashPassword(email: string, password: string) { - return crypto - .createHash("sha256") - .update(password + email.toLowerCase()) - .digest("base64"); -} - -export const allCookiesValid = (cookies: Cookie[]) => - cookies.every((cookie) => cookie.TTL() > 0); - -export async function fetchValidLinkData( - response: IRacingAPIResponse, - client: AxiosInstance = axios -) { - if (!response || !response.link || !response.expires) { - throw new InvalidResponseData(); - } - - const expirationDate = new Date(response.expires); - const now = new Date(); - - if (expirationDate < now) { - throw new CacheExpiredError(); - } - - const data = await client.get(response.link, { - responseType: "json", - }); - - return data.data; -} diff --git a/packages/api/tsconfig.build.json b/packages/api/tsconfig.build.json deleted file mode 100644 index d0fb85d..0000000 --- a/packages/api/tsconfig.build.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../../tsconfig/node.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist", - "noUnusedLocals": false, - "paths": { - "@/*": ["./src/*"] - } - }, - "exclude": ["node_modules", "dist"] -} diff --git a/packages/cli/.npmignore b/packages/cli/.npmignore deleted file mode 100644 index 979227b..0000000 --- a/packages/cli/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -src -tsconfig.build.json -tsconfig.build.tsbuildinfo -tsconfig.json diff --git a/packages/cli/README.md b/packages/cli/README.md deleted file mode 100644 index 903b332..0000000 --- a/packages/cli/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# @iracing-data/cli - -A CLI impelementation for the iRacing `/data` API. - -```sh -Usage: index [options] [command] - -CLI tool for interacting with the iRacing API - -Options: - -V, --version output the version number - -c, --credentials Path to credentials file - -h, --help display help for command - -Commands: - whoami Prints the current session's username - auth [options] Stores credentials for the iRacing API - logout Clears stored credentials - docs [options] Downloads the latest API documentation from `/data/doc` - car-assets Fetch car assets - car Fetch car - car-class [options] Fetch car class - categories [options] Fetch categories - divisions [options] Fetch divisions - event-types [options] Fetch event types - member-profile [options] Fetch member profile - driver-stats [options] Fetch driver stats for a specific category - hosted-combined [options] Fetch hosted combined sessions - hosted [options] Fetch hosted sessions - league [options] Fetch league - league-sessions [options] Fetch league sessions - league-directory [options] Fetch league directory - league-membership [options] Fetch league membership - league-roster [options] Fetch league roster - league-seasons [options] Fetch league seasons - league-season-standings [options] Fetch league season standings - lookup-countries [options] Fetch countries - lookup-drivers [options] Fetch drivers - member-awards [options] Fetch member awards - member-info [options] Fetch member info - race-results [options] Get results for a subsession. - lap-data [options] Fetch lap data - season-list [options] Fetch season list - race-guide [options] Fetch race guid - series [options] Fetch series - series-past-seasons Fetch series past seasons - member-career-stats [options] Fetch member career stats - season-driver-standings [options] Fetch season driver standings - track-assets Fetch track assets - track-info Fetch track info - help [command] display help for command -``` \ No newline at end of file diff --git a/packages/cli/bin/index.js b/packages/cli/bin/index.js deleted file mode 100755 index bec45f8..0000000 --- a/packages/cli/bin/index.js +++ /dev/null @@ -1,743 +0,0 @@ -#!/usr/bin/env node -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const path_1 = __importDefault(require("path")); -const extra_typings_1 = require("@commander-js/extra-typings"); -const api_1 = require("@iracing-data/api"); -const sync_car_assets_1 = require("@iracing-data/sync-car-assets"); -const sync_track_assets_1 = require("@iracing-data/sync-track-assets"); -const inquirer_1 = __importDefault(require("inquirer")); -const lodash_1 = require("lodash"); -const tough_cookie_1 = require("tough-cookie"); -const storage_1 = require("./storage"); -const util_1 = require("./util"); -const createCookieStore = (credentials) => { - return new storage_1.JSONCookieStore(credentials); -}; -const createCookieJar = (credentials) => { - return new tough_cookie_1.CookieJar(createCookieStore(credentials)); -}; -const createAPI = (credentials) => { - return new api_1.IRacingAPISessionClient(createCookieJar(credentials)); -}; -const categoryArg = new extra_typings_1.Argument("", "Category to fetch driver stats for") - .choices(api_1.CATEGORY_VALUES) - .argRequired(); -/** - * Main program instance that provides a common interface for the CLI tool. - */ -const program = new extra_typings_1.Command("iracing-data") - .description("CLI tool for interacting with the iRacing API") - .version("0.0.0") - // ???: Should this remain a global option or be attached to relevant commands via Command subclass? - .option("--credentials ", "Path to credentials file", path_1.default.join(__dirname, "cookies.json")); -/** - * whoami command - */ -program - .command("whoami") - .description("Prints the current session information.") - .action((_, command) => { - const { credentials } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(api.whoami() || "No session found."); -}); -/** - * logout command - */ -program - .command("logout") - .description("Logs out of the current session.") - .action((_, command) => { - const { credentials } = command.optsWithGlobals(); - const cookieJar = createCookieJar(credentials); - cookieJar.removeAllCookies(lodash_1.noop); - console.log("Logged out."); -}); -/** - * auth command - */ -program - .command("auth") - .description("Stores credentials for the iRacing API") - .option("-u, --username ", "iRacing username") - .action(async (_, command) => { - const { credentials, username: usernameOption } = command.optsWithGlobals(); - const { username = usernameOption, password } = await inquirer_1.default.prompt([ - { - type: "input", - name: "username", - message: "Enter your username:", - when: () => !usernameOption, - }, - { - type: "password", - name: "password", - message: "Enter your password:", - mask: "*", - }, - ]); - console.log(`Authenticating with ${username}...`); - const hashedPassword = await (0, api_1.hashPassword)(username, password); - const api = createAPI(credentials); - await api.authenticate({ username, password: hashedPassword }); - console.log("✅ Authentication successful"); -}); -/** - * award-instances command - */ -program - .command("award-instances") - .argument("[customerId]", "Customer ID", parseInt) - .argument("", "Award ID", parseInt) - .description("Fetch award instances") - .option("-o, --output ", "Output path") - .action(async (customerId, awardId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const awardInstances = await api.memberAwardInstances({ - customerId, - awardId, - }); - (0, util_1.handleOutput)(awardInstances, output); -}); -/** - * car-assets command - */ -program - .command("car-assets") - .description("Fetch car assets") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const carAssets = await api.carAssets(); - (0, util_1.handleOutput)(carAssets, output); -}); -/** - * car command - */ -program - .command("car") - .description("Fetch car") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const car = await api.carGet(); - (0, util_1.handleOutput)(car, output); -}); -/** - * car-class command - */ -program - .command("car-class") - .description("Fetch car class") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const carClass = await api.carClassGet(); - (0, util_1.handleOutput)(carClass, output); -}); -/** - * categories command - */ -program - .command("categories") - .description("Fetch categories") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const categories = await api.constantsCategories(); - (0, util_1.handleOutput)(categories, output); -}); -/** - * countries command - */ -program - .command("countries") - .description("Fetch countries") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const countries = await api.lookupCountries(); - (0, util_1.handleOutput)(countries, output); -}); -/** - * divisions command - */ -program - .command("divisions") - .description("Fetch divisions") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const divisions = await api.constantsDivisions(); - (0, util_1.handleOutput)(divisions, output); -}); -/** - * docs command - */ -program - .command("docs") - .description("Downloads the latest API documentation from `/data/doc`") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const docs = await api.doc(); - (0, util_1.handleOutput)(docs, output); -}); -program - .command("download-car-assets") - .description("Downloads the latest car assets.") - .requiredOption("-o, --out-dir ", "Output directory") - .option("-i, --write-full-info", "Write full car info", false) - .option("--skip-info", "Skip writing car info", false) - .option("-a, --write-full-assets", "Write full car assets", false) - .option("--skip-assets", "Skip writing car asset", false) - .option("-u, --username ", "iRacing username") - .action(async (_, command) => { - console.log("Downloading car assets..."); - const { credentials, outDir, writeFullAssets, writeFullInfo, skipInfo: skipCarInfo, skipAssets: skipCarAssets, username, } = command.optsWithGlobals(); - const api = createAPI(credentials); - await (0, sync_car_assets_1.syncCarAssets)({ - outputDir: outDir, - writeFullAssets, - writeFullInfo, - skipCarAssets, - skipCarInfo, - username, - }, api); - console.log("Done!"); -}); -program - .command("download-track-assets") - .description("Downloads the latest track SVGs.") - .requiredOption("-o, --out-dir ", "Output directory") - .option("-f, --force", "Force download of existing SVG layers", false) - .option("-i, --write-full-info", "Write full track info", false) - .option("--skip-info", "Skip writing track info", false) - .option("-a, --write-full-assets", "Write full track assets", false) - .option("--skip-assets", "Skip writing track asset", false) - .option("--include-svgs", "Include SVGs", false) - .action(async (_, command) => { - console.log("Downloading track assets..."); - const { credentials, outDir, writeFullAssets, writeFullInfo, skipAssets: skipTrackAssets, skipInfo: skipTrackInfo, includeSvgs, force, } = command.optsWithGlobals(); - const api = createAPI(credentials); - await (0, sync_track_assets_1.syncTrackAssets)({ - outputDir: outDir, - writeFullAssets, - writeFullInfo, - skipTrackAssets, - skipTrackInfo, - force, - includeSVGs: includeSvgs, - }, api); - console.log("Done!"); -}); -/** - * driver-stats - */ -program - .command("driver-stats") - .addArgument(categoryArg) - .description("Fetch driver stats") - .option("-o, --output ", "Output path") - .action(async (category, _, command) => { - (0, api_1.assertCategory)(category); - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const driverStats = await api.driverStatsByCategory({ category }); - (0, util_1.handleOutput)(driverStats, output); -}); -/** - * event-types command - */ -program - .command("event-types") - .description("Fetch event types") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const eventTypes = await api.constantsEventTypes(); - (0, util_1.handleOutput)(eventTypes, output); -}); -/** - * hosted command - */ -program - .command("hosted") - .description("Fetch hosted sessions") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const hostedSessions = await api.hostedSessions(); - (0, util_1.handleOutput)(hostedSessions, output); -}); -/** - * hosted-combined command - */ -program - .command("hosted-combined") - .description("Fetch hosted combined sessions") - .option("-p, --package-id ", "Package ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output, packageId } = command.optsWithGlobals(); - const api = createAPI(credentials); - const hostedCombinedSessions = await api.hostedCombinedSessions({ - packageId, - }); - (0, util_1.handleOutput)(hostedCombinedSessions, output); -}); -/** - * lap-data command - */ -program - .command("lap-data") - .argument("", "Subsession ID", parseInt) - .argument("", "Session number", parseInt) - .description("Fetch lap data") - .option("-c, --customer-id ", "Customer ID", parseInt) - .option("-t, --team-id ", "Team ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (subsessionId, sessionNumber, _, command) => { - const { credentials, customerId, teamId, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const lapData = await api.resultsLapData({ - subsessionId, - simsessionNumber: sessionNumber, - customerId, - teamId, - }); - (0, util_1.handleOutput)(lapData, output); -}); -/** - * league command - */ -program - .command("league") - .argument("", "League ID", parseInt) - .description("Fetch league") - .option("-l, --include-licenses", "Include licenses") - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, includeLicenses, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching league ${leagueId}...`); - const league = await api.leagueGet({ leagueId, includeLicenses }); - (0, util_1.handleOutput)(league, output); -}); -/** - * league-directory command - */ -program - .command("league-directory") - .description("Fetch league directory") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching league directory..."); - console.log("TODO: Support params"); - const leagueDirectory = await api.leagueDirectory(); - (0, util_1.handleOutput)(leagueDirectory, output); -}); -/** - * league-membership command - */ -program - .command("league-membership") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch league membership") - .option("-l, --include-league", "Include league") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, includeLeague, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching league membership for ${customerId}...`); - const leagueMembership = await api.leagueMembership({ - customerId, - includeLeague, - }); - (0, util_1.handleOutput)(leagueMembership, output); -}); -/** - * league-points-systems command - */ -program - .command("league-points-systems") - .argument("", "League ID", parseInt) - .description("Fetch league points systems") - .option("-s, --season-id ", "Season ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, output, seasonId } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching league points systems..."); - const leaguePointsSystems = await api.leagueGetPointsSystems({ - leagueId, - seasonId, - }); - (0, util_1.handleOutput)(leaguePointsSystems, output); -}); -/** - * league-roster command - */ -program - .command("league-roster") - .argument("", "League ID", parseInt) - .description("Fetch league roster") - .option("-l, --include-licenses", "Include licenses") - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, includeLicenses, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching league roster for ${leagueId}...`); - const leagueRoster = await api.leagueRoster({ - leagueId, - includeLicenses, - }); - (0, util_1.handleOutput)(leagueRoster, output); -}); -/** - * league-seasons command - */ -program - .command("league-seasons") - .argument("", "League ID", parseInt) - .description("Fetch league seasons") - .option("-r, --retired", "Retired") - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, retired, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching league seasons for ${leagueId}...`); - const leagueSeasons = await api.leagueSeasons({ leagueId, retired }); - (0, util_1.handleOutput)(leagueSeasons, output); -}); -/** - * league-season-sessions command - */ -program - .command("league-season-sessions") - .argument("", "League ID", parseInt) - .argument("", "Season ID", parseInt) - .description("Fetch league season sessions") - .option("-r, --results-only", "Results only") - .option("-o, --output ", "Output path") - .action(async (leagueId, seasonId, _, command) => { - const { credentials, output, resultsOnly } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching league season sessions for ${leagueId} ${seasonId}...`); - const leagueSeasonSessions = await api.leagueSeasonSessions({ - leagueId, - seasonId, - resultsOnly, - }); - (0, util_1.handleOutput)(leagueSeasonSessions, output); -}); -/** - * league-season-standings command - */ -program - .command("league-season-standings") - .argument("", "League ID", parseInt) - .argument("", "Season ID", parseInt) - .description("Fetch league season standings") - .option("-c, --car-class-id ", "Car class ID", parseInt) - .option("-C, --car-id ", "Car ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (leagueId, seasonId, _, command) => { - const { credentials, carClassId, carId, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching league season standings for ${leagueId} ${seasonId}...`); - const leagueSeasonStandings = await api.leagueSeasonStandings({ - leagueId, - seasonId, - carClassId, - carId, - }); - (0, util_1.handleOutput)(leagueSeasonStandings, output); -}); -/** - * league-sessions command - */ -program - .command("league-sessions") - .description("Fetch league sessions") - .option("-m, --mine", "Mine") - .option("-p, --package-id ", "Package ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching league sessions..."); - const leagueSessions = await api.leagueCustomerLeagueSessions(); - (0, util_1.handleOutput)(leagueSessions, output); -}); -/** - * licenses command - */ -program - .command("licenses") - .description("Fetch licenses") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const licenses = await api.lookupLicenses(); - (0, util_1.handleOutput)(licenses, output); -}); -/** - * member-awards command - */ -program - .command("member-awards") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch member awards") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member awards for ${customerId}...`); - const memberAwards = await api.memberAwards({ customerId }); - (0, util_1.handleOutput)(memberAwards, output); -}); -/** - * member-career-stats command - */ -program - .command("member-career-stats") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch member career stats") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member career stats for ${customerId}...`); - const memberCareerStats = await api.statsMemberCareer({ customerId }); - (0, util_1.handleOutput)(memberCareerStats, output); -}); -/** - * member-info command - */ -program - .command("member-info") - .description("Fetch member info") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member info...`); - const memberInfo = await api.memberInfo(); - (0, util_1.handleOutput)(memberInfo, output); -}); -/** - * member-participation command - */ -program - .command("member-participation") - .description("Fetch member info") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member participation...`); - const participation = await api.memberParticipationCredits(); - (0, util_1.handleOutput)(participation, output); -}); -/** - * member-profile command - */ -program - .command("member-profile") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch member profile") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member profile${customerId ? ` for ${customerId}` : ""}...`); - const memberProfile = await api.memberProfile({ customerId }); - (0, util_1.handleOutput)(memberProfile, output); -}); -/** - * race-guide command - */ -program - .command("race-guide") - .argument("[from]", "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.") - .description("Fetch race guide") - .option("-e, --end-after-from", "Include sessions which start before 'from' but end after.") - .option("-o, --output ", "Output path") - .action(async (from, _, command) => { - const { endAfterFrom } = command.optsWithGlobals(); - // const api = createAPI(credentials); - console.log(`Fetching race guide for ${from}. ${endAfterFrom ? "Including" : "Not including"} sessions which start before 'from' but end after.`); - console.error("!!!: Fix this"); - // const raceGuide = await api.getRaceGuide({ - // from: from ? Date.parse(from) : undefined, - // endAfterFrom, - // }); - // console.log(raceGuide); -}); -/** - * race-results command - */ -program - .command("race-results") - .argument("", "Subsession ID", parseInt) - .description("Fetch race results for a given session") - .option("-l, --include-licenses", "Include licenses") - .option("-o, --output ", "Output path") - .action(async (subsessionId, _, command) => { - const { credentials, includeLicenses, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching race results for session ${subsessionId}...`); - const raceResults = await api.resultsGet({ - subsessionId, - includeLicenses, - }); - (0, util_1.handleOutput)(raceResults, output); -}); -/** - * search-drivers command - */ -program - .command("search-drivers") - .argument("", "Search query") - .description("Fetch drivers") - .option("-l, --league-id ", "League ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (search, _, command) => { - const { credentials, output, leagueId } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Searching for drivers matching "${search}"...`); - const drivers = await api.lookupDrivers({ searchTerm: search, leagueId }); - (0, util_1.handleOutput)(drivers, output); -}); -/** - * search-hosted-results command - */ -program - .command("search-hosted-results") - .description("Fetch hosted results") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Searching for hosted results matching "undefined"...`); - console.log("TODO: Add support for params"); - const hostedResults = await api.resultsSearchHosted(); - (0, util_1.handleOutput)(hostedResults, output); -}); -/** - * season-driver-standings command - */ -program - .command("season-driver-standings") - .argument("", "Season ID", parseInt) - .argument("", "Car class ID", parseInt) - .description("Fetch season driver standings") - .option("-c, --club-id ", "Club ID", parseInt) - .option("-d, --division ", "Division", parseInt) - .option("-r, --race-week-number ", "Race week number", parseInt) - .option("-o, --output ", "Output path") - .action(async (seasonId, carClassId, _, command) => { - const { credentials, clubId, division, raceWeekNumber, output } = command.optsWithGlobals(); - (0, api_1.assertDivision)(division); - const api = createAPI(credentials); - console.log(`Fetching season driver standings for ${seasonId} ${carClassId}...`); - const seasonDriverStandings = await api.statsSeasonDriverStandings({ - seasonId, - carClassId, - division, - raceWeekNumber, - }); - (0, util_1.handleOutput)(seasonDriverStandings, output); -}); -/** - * season-list command - */ -program - .command("season-list") - .argument("", "Season year", parseInt) - .argument("", "Season quarter", parseInt) - .description("Fetch season list") - .option("-o, --output ", "Output path") - .action(async (seasonYear, seasonQuarter, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching season list..."); - const seasonList = await api.seasonList({ seasonYear, seasonQuarter }); - (0, util_1.handleOutput)(seasonList, output); -}); -/** - * series command - */ -program - .command("series") - .description("Fetch series") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching series..."); - const series = await api.seriesGet(); - (0, util_1.handleOutput)(series, output); -}); -/** - * series-past-seasons command - */ -program - .command("series-past-seasons") - .argument("", "Series ID", parseInt) - .description("Fetch series past seasons") - .option("-o, --output ", "Output path") - .action(async (seriesId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching past seasons for series ${seriesId}...`); - const seriesPastSeasons = await api.seriesPastSeasons({ seriesId }); - (0, util_1.handleOutput)(seriesPastSeasons, output); -}); -/** - * track-assets command - */ -program - .command("track-assets") - .description("Fetch track assets") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching track assets..."); - const trackAssets = await api.trackAssets(); - (0, util_1.handleOutput)(trackAssets, output); -}); -/** - * track-info command - */ -program - .command("track-info") - .description("Fetch track info") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching track info..."); - const trackInfo = await api.trackGet(); - (0, util_1.handleOutput)(trackInfo, output); -}); -program.parse(); diff --git a/packages/cli/bin/storage.js b/packages/cli/bin/storage.js deleted file mode 100644 index 84744a1..0000000 --- a/packages/cli/bin/storage.js +++ /dev/null @@ -1,83 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.JSONCookieStore = void 0; -const fs_1 = __importDefault(require("fs")); -const util_1 = __importDefault(require("util")); -const tough_cookie_1 = require("tough-cookie"); -/** - * Subclass of the `MemoryCookieStore` that persists cookies to a JSON file after all operations. - */ -class JSONCookieStore extends tough_cookie_1.MemoryCookieStore { - constructor(filePath) { - super(); - Object.defineProperty(this, "_filePath", { - enumerable: true, - configurable: true, - writable: true, - value: void 0 - }); - this._filePath = filePath; - if (util_1.default.inspect.custom) { - this[util_1.default.inspect.custom] = this.inspect; - } - this.idx = this.loadFromFile(); - } - inspect() { - return `{ idx: ${util_1.default.inspect(this.idx, false, 2)} }`; - } - saveToFile() { - fs_1.default.writeFileSync(this.filePath, JSON.stringify(this.idx)); - } - loadFromFile() { - let cookieData = null; - let cookiesJSON = {}; - // If the file exists, load the raw data from the file path - if (fs_1.default.existsSync(this.filePath)) { - cookieData = fs_1.default.readFileSync(this.filePath, "utf8"); - } - if (cookieData) { - try { - cookiesJSON = JSON.parse(cookieData); - } - catch (error) { - console.error(error); - throw new Error(`Could not parse cookie file at ${this.filePath}.`); - } - } - for (const domainName in cookiesJSON) { - for (const pathName in cookiesJSON[domainName]) { - for (const cookieName in cookiesJSON[domainName][pathName]) { - cookiesJSON[domainName][pathName][cookieName] = tough_cookie_1.Cookie.fromJSON(JSON.stringify(cookiesJSON[domainName][pathName][cookieName])); - } - } - } - return cookiesJSON; - } - get filePath() { - return this._filePath; - } - async putCookie(cookie) { - await super.putCookie(cookie); - this.saveToFile(); - } - async updateCookie(oldCookie, newCookie) { - await super.updateCookie(oldCookie, newCookie); - this.saveToFile(); - } - async removeCookie(domain, path, key) { - await super.removeCookie(domain, path, key); - this.saveToFile(); - } - async removeCookies(domain, path) { - await super.removeCookies(domain, path); - this.saveToFile(); - } - async removeAllCookies() { - await super.removeAllCookies(); - this.saveToFile(); - } -} -exports.JSONCookieStore = JSONCookieStore; diff --git a/packages/cli/bin/util.js b/packages/cli/bin/util.js deleted file mode 100644 index 5b48a17..0000000 --- a/packages/cli/bin/util.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.handleOutput = handleOutput; -const node_fs_1 = __importDefault(require("node:fs")); -/** - * Logs the data to the console or writes it to a file. - * @param data The data to be output - * @param output The path of the file to write the data to - */ -function handleOutput(data, output) { - if (output) { - node_fs_1.default.writeFileSync(output, JSON.stringify(data, null, 2)); - console.log("Output written to:", output); - } - else { - console.log(JSON.stringify(data, null, 2)); - } -} diff --git a/packages/cli/package.json b/packages/cli/package.json deleted file mode 100644 index e681579..0000000 --- a/packages/cli/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@iracing-data/cli", - "version": "0.0.2-alpha.0", - "main": "bin/index.js", - "bin": { - "iracing-data": "bin/index.js" - }, - "scripts": { - "codegen:readme": "pnpm start -h > README.md", - "dev": "ts-node --project tsconfig.build.json src/index.ts", - "build": "tsc --build tsconfig.build.json", - "start": "node bin/index.js" - }, - "dependencies": { - "@iracing-data/api": "workspace:*", - "@iracing-data/sync-car-assets": "workspace:*", - "@iracing-data/sync-track-assets": "workspace:*", - "commander": "13.1.0", - "inquirer": "^12.4.1", - "lodash": "^4.17.21", - "tough-cookie": "^5.1.1" - }, - "devDependencies": { - "@commander-js/extra-typings": "^13.1.0", - "typescript": "^5.9.2" - } -} \ No newline at end of file diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts deleted file mode 100644 index 856aa32..0000000 --- a/packages/cli/src/index.ts +++ /dev/null @@ -1,892 +0,0 @@ -#!/usr/bin/env node -import path from "path"; -import { Argument, Command } from "@commander-js/extra-typings"; -import { - IRacingAPISessionClient, - CATEGORY_VALUES, - assertCategory, - assertDivision, - hashPassword, -} from "@iracing-data/api"; -import { syncCarAssets as downloadCarAssets } from "@iracing-data/sync-car-assets"; -import { syncTrackAssets as downloadTrackAssets } from "@iracing-data/sync-track-assets"; -import inquirer from "inquirer"; -import { noop } from "lodash"; -import { CookieJar } from "tough-cookie"; -import { JSONCookieStore } from "./storage"; -import { handleOutput } from "./util"; - -const createCookieStore = (credentials: string) => { - return new JSONCookieStore(credentials); -}; - -const createCookieJar = (credentials: string) => { - return new CookieJar(createCookieStore(credentials)); -}; - -const createAPI = (credentials: string) => { - return new IRacingAPISessionClient(createCookieJar(credentials)); -}; - -const categoryArg = new Argument( - "", - "Category to fetch driver stats for" -) - .choices(CATEGORY_VALUES) - .argRequired(); - -/** - * Main program instance that provides a common interface for the CLI tool. - */ -const program = new Command("iracing-data") - .description("CLI tool for interacting with the iRacing API") - .version("0.0.0") - // ???: Should this remain a global option or be attached to relevant commands via Command subclass? - .option( - "--credentials ", - "Path to credentials file", - path.join(__dirname, "cookies.json") - ); - -/** - * whoami command - */ -program - .command("whoami") - .description("Prints the current session information.") - .action((_: object, command) => { - const { credentials } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(api.whoami() || "No session found."); - }); - -/** - * logout command - */ -program - .command("logout") - .description("Logs out of the current session.") - .action((_, command) => { - const { credentials } = command.optsWithGlobals(); - const cookieJar = createCookieJar(credentials); - cookieJar.removeAllCookies(noop); - console.log("Logged out."); - }); - -/** - * auth command - */ -program - .command("auth") - .description("Stores credentials for the iRacing API") - .option("-u, --username ", "iRacing username") - .action(async (_, command) => { - const { credentials, username: usernameOption } = command.optsWithGlobals(); - - const { username = usernameOption, password } = await inquirer.prompt([ - { - type: "input", - name: "username", - message: "Enter your username:", - when: () => !usernameOption, - }, - { - type: "password", - name: "password", - message: "Enter your password:", - mask: "*", - }, - ]); - - console.log(`Authenticating with ${username}...`); - const hashedPassword = await hashPassword(username, password); - const api = createAPI(credentials); - await api.authenticate({ username, password: hashedPassword }); - console.log("✅ Authentication successful"); - }); - -/** - * award-instances command - */ -program - .command("award-instances") - .argument("[customerId]", "Customer ID", parseInt) - .argument("", "Award ID", parseInt) - .description("Fetch award instances") - .option("-o, --output ", "Output path") - .action(async (customerId, awardId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const awardInstances = await api.memberAwardInstances({ - customerId, - awardId, - }); - - handleOutput(awardInstances, output); - }); - -/** - * car-assets command - */ -program - .command("car-assets") - .description("Fetch car assets") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const carAssets = await api.carAssets(); - - handleOutput(carAssets, output); - }); - -/** - * car command - */ -program - .command("car") - .description("Fetch car") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const car = await api.carGet(); - - handleOutput(car, output); - }); - -/** - * car-class command - */ -program - .command("car-class") - .description("Fetch car class") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const carClass = await api.carClassGet(); - - handleOutput(carClass, output); - }); - -/** - * categories command - */ -program - .command("categories") - .description("Fetch categories") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const categories = await api.constantsCategories(); - - handleOutput(categories, output); - }); - -/** - * countries command - */ -program - .command("countries") - .description("Fetch countries") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const countries = await api.lookupCountries(); - - handleOutput(countries, output); - }); - -/** - * divisions command - */ -program - .command("divisions") - .description("Fetch divisions") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const divisions = await api.constantsDivisions(); - - handleOutput(divisions, output); - }); - -/** - * docs command - */ -program - .command("docs") - .description("Downloads the latest API documentation from `/data/doc`") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const docs = await api.doc(); - - handleOutput(docs, output); - }); - -program - .command("download-car-assets") - .description("Downloads the latest car assets.") - .requiredOption("-o, --out-dir ", "Output directory") - .option("-i, --write-full-info", "Write full car info", false) - .option("--skip-info", "Skip writing car info", false) - .option("-a, --write-full-assets", "Write full car assets", false) - .option("--skip-assets", "Skip writing car asset", false) - .option("-u, --username ", "iRacing username") - .action(async (_, command) => { - console.log("Downloading car assets..."); - const { - credentials, - outDir, - writeFullAssets, - writeFullInfo, - skipInfo: skipCarInfo, - skipAssets: skipCarAssets, - username, - } = command.optsWithGlobals(); - const api = createAPI(credentials); - await downloadCarAssets( - { - outputDir: outDir, - writeFullAssets, - writeFullInfo, - skipCarAssets, - skipCarInfo, - username, - }, - api - ); - console.log("Done!"); - }); - -program - .command("download-track-assets") - .description("Downloads the latest track SVGs.") - .requiredOption("-o, --out-dir ", "Output directory") - .option("-f, --force", "Force download of existing SVG layers", false) - .option("-i, --write-full-info", "Write full track info", false) - .option("--skip-info", "Skip writing track info", false) - .option("-a, --write-full-assets", "Write full track assets", false) - .option("--skip-assets", "Skip writing track asset", false) - .option("--include-svgs", "Include SVGs", false) - .action(async (_, command) => { - console.log("Downloading track assets..."); - const { - credentials, - outDir, - writeFullAssets, - writeFullInfo, - skipAssets: skipTrackAssets, - skipInfo: skipTrackInfo, - includeSvgs, - force, - } = command.optsWithGlobals(); - const api = createAPI(credentials); - await downloadTrackAssets( - { - outputDir: outDir, - writeFullAssets, - writeFullInfo, - skipTrackAssets, - skipTrackInfo, - force, - includeSVGs: includeSvgs, - }, - api - ); - console.log("Done!"); - }); - -/** - * driver-stats - */ -program - .command("driver-stats") - .addArgument(categoryArg) - .description("Fetch driver stats") - .option("-o, --output ", "Output path") - .action(async (category, _, command) => { - assertCategory(category); - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const driverStats = await api.driverStatsByCategory({ category }); - - handleOutput(driverStats, output); - }); - -/** - * event-types command - */ -program - .command("event-types") - .description("Fetch event types") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const eventTypes = await api.constantsEventTypes(); - - handleOutput(eventTypes, output); - }); - -/** - * hosted command - */ -program - .command("hosted") - .description("Fetch hosted sessions") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const hostedSessions = await api.hostedSessions(); - - handleOutput(hostedSessions, output); - }); - -/** - * hosted-combined command - */ -program - .command("hosted-combined") - .description("Fetch hosted combined sessions") - .option("-p, --package-id ", "Package ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output, packageId } = command.optsWithGlobals(); - const api = createAPI(credentials); - const hostedCombinedSessions = await api.hostedCombinedSessions({ - packageId, - }); - - handleOutput(hostedCombinedSessions, output); - }); - -/** - * lap-data command - */ -program - .command("lap-data") - .argument("", "Subsession ID", parseInt) - .argument("", "Session number", parseInt) - .description("Fetch lap data") - .option("-c, --customer-id ", "Customer ID", parseInt) - .option("-t, --team-id ", "Team ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (subsessionId, sessionNumber, _, command) => { - const { credentials, customerId, teamId, output } = - command.optsWithGlobals(); - const api = createAPI(credentials); - const lapData = await api.resultsLapData({ - subsessionId, - simsessionNumber: sessionNumber, - customerId, - teamId, - }); - - handleOutput(lapData, output); - }); - -/** - * league command - */ -program - .command("league") - .argument("", "League ID", parseInt) - .description("Fetch league") - .option("-l, --include-licenses", "Include licenses") - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, includeLicenses, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - - console.log(`Fetching league ${leagueId}...`); - const league = await api.leagueGet({ leagueId, includeLicenses }); - - handleOutput(league, output); - }); - -/** - * league-directory command - */ -program - .command("league-directory") - .description("Fetch league directory") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching league directory..."); - console.log("TODO: Support params"); - const leagueDirectory = await api.leagueDirectory(); - - handleOutput(leagueDirectory, output); - }); - -/** - * league-membership command - */ -program - .command("league-membership") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch league membership") - .option("-l, --include-league", "Include league") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, includeLeague, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - - console.log(`Fetching league membership for ${customerId}...`); - const leagueMembership = await api.leagueMembership({ - customerId, - includeLeague, - }); - - handleOutput(leagueMembership, output); - }); - -/** - * league-points-systems command - */ -program - .command("league-points-systems") - .argument("", "League ID", parseInt) - .description("Fetch league points systems") - .option("-s, --season-id ", "Season ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, output, seasonId } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching league points systems..."); - const leaguePointsSystems = await api.leagueGetPointsSystems({ - leagueId, - seasonId, - }); - - handleOutput(leaguePointsSystems, output); - }); - -/** - * league-roster command - */ -program - .command("league-roster") - .argument("", "League ID", parseInt) - .description("Fetch league roster") - .option("-l, --include-licenses", "Include licenses") - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, includeLicenses, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - - console.log(`Fetching league roster for ${leagueId}...`); - const leagueRoster = await api.leagueRoster({ - leagueId, - includeLicenses, - }); - - handleOutput(leagueRoster, output); - }); - -/** - * league-seasons command - */ -program - .command("league-seasons") - .argument("", "League ID", parseInt) - .description("Fetch league seasons") - .option("-r, --retired", "Retired") - .option("-o, --output ", "Output path") - .action(async (leagueId, _, command) => { - const { credentials, retired, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - - console.log(`Fetching league seasons for ${leagueId}...`); - const leagueSeasons = await api.leagueSeasons({ leagueId, retired }); - - handleOutput(leagueSeasons, output); - }); - -/** - * league-season-sessions command - */ -program - .command("league-season-sessions") - .argument("", "League ID", parseInt) - .argument("", "Season ID", parseInt) - .description("Fetch league season sessions") - .option("-r, --results-only", "Results only") - .option("-o, --output ", "Output path") - .action(async (leagueId, seasonId, _, command) => { - const { credentials, output, resultsOnly } = command.optsWithGlobals(); - const api = createAPI(credentials); - - console.log( - `Fetching league season sessions for ${leagueId} ${seasonId}...` - ); - const leagueSeasonSessions = await api.leagueSeasonSessions({ - leagueId, - seasonId, - resultsOnly, - }); - - handleOutput(leagueSeasonSessions, output); - }); - -/** - * league-season-standings command - */ -program - .command("league-season-standings") - .argument("", "League ID", parseInt) - .argument("", "Season ID", parseInt) - .description("Fetch league season standings") - .option("-c, --car-class-id ", "Car class ID", parseInt) - .option("-C, --car-id ", "Car ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (leagueId, seasonId, _, command) => { - const { credentials, carClassId, carId, output } = - command.optsWithGlobals(); - const api = createAPI(credentials); - - console.log( - `Fetching league season standings for ${leagueId} ${seasonId}...` - ); - const leagueSeasonStandings = await api.leagueSeasonStandings({ - leagueId, - seasonId, - carClassId, - carId, - }); - - handleOutput(leagueSeasonStandings, output); - }); - -/** - * league-sessions command - */ -program - .command("league-sessions") - .description("Fetch league sessions") - .option("-m, --mine", "Mine") - .option("-p, --package-id ", "Package ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching league sessions..."); - const leagueSessions = await api.leagueCustomerLeagueSessions(); - - handleOutput(leagueSessions, output); - }); - -/** - * licenses command - */ -program - .command("licenses") - .description("Fetch licenses") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - const licenses = await api.lookupLicenses(); - - handleOutput(licenses, output); - }); - -/** - * member-awards command - */ -program - .command("member-awards") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch member awards") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member awards for ${customerId}...`); - const memberAwards = await api.memberAwards({ customerId }); - - handleOutput(memberAwards, output); - }); - -/** - * member-career-stats command - */ -program - .command("member-career-stats") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch member career stats") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member career stats for ${customerId}...`); - const memberCareerStats = await api.statsMemberCareer({ customerId }); - - handleOutput(memberCareerStats, output); - }); - -/** - * member-info command - */ -program - .command("member-info") - .description("Fetch member info") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member info...`); - const memberInfo = await api.memberInfo(); - - handleOutput(memberInfo, output); - }); - -/** - * member-participation command - */ -program - .command("member-participation") - .description("Fetch member info") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching member participation...`); - const participation = await api.memberParticipationCredits(); - - handleOutput(participation, output); - }); - -/** - * member-profile command - */ -program - .command("member-profile") - .argument("[customerId]", "Customer ID", parseInt) - .description("Fetch member profile") - .option("-o, --output ", "Output path") - .action(async (customerId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log( - `Fetching member profile${customerId ? ` for ${customerId}` : ""}...` - ); - const memberProfile = await api.memberProfile({ customerId }); - - handleOutput(memberProfile, output); - }); - -/** - * race-guide command - */ -program - .command("race-guide") - .argument( - "[from]", - "ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time." - ) - .description("Fetch race guide") - .option( - "-e, --end-after-from", - "Include sessions which start before 'from' but end after." - ) - .option("-o, --output ", "Output path") - .action(async (from, _, command) => { - const { endAfterFrom } = command.optsWithGlobals(); - // const api = createAPI(credentials); - console.log( - `Fetching race guide for ${from}. ${ - endAfterFrom ? "Including" : "Not including" - } sessions which start before 'from' but end after.` - ); - - console.error("!!!: Fix this"); - // const raceGuide = await api.getRaceGuide({ - // from: from ? Date.parse(from) : undefined, - // endAfterFrom, - // }); - // console.log(raceGuide); - }); - -/** - * race-results command - */ -program - .command("race-results") - .argument("", "Subsession ID", parseInt) - .description("Fetch race results for a given session") - .option("-l, --include-licenses", "Include licenses") - .option("-o, --output ", "Output path") - .action(async (subsessionId, _, command) => { - const { credentials, includeLicenses, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching race results for session ${subsessionId}...`); - const raceResults = await api.resultsGet({ - subsessionId, - includeLicenses, - }); - - handleOutput(raceResults, output); - }); - -/** - * search-drivers command - */ -program - .command("search-drivers") - .argument("", "Search query") - .description("Fetch drivers") - .option("-l, --league-id ", "League ID", parseInt) - .option("-o, --output ", "Output path") - .action(async (search, _, command) => { - const { credentials, output, leagueId } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Searching for drivers matching "${search}"...`); - const drivers = await api.lookupDrivers({ searchTerm: search, leagueId }); - - handleOutput(drivers, output); - }); - -/** - * search-hosted-results command - */ -program - .command("search-hosted-results") - .description("Fetch hosted results") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Searching for hosted results matching "undefined"...`); - console.log("TODO: Add support for params"); - const hostedResults = await api.resultsSearchHosted(); - - handleOutput(hostedResults, output); - }); - -/** - * season-driver-standings command - */ -program - .command("season-driver-standings") - .argument("", "Season ID", parseInt) - .argument("", "Car class ID", parseInt) - .description("Fetch season driver standings") - .option("-c, --club-id ", "Club ID", parseInt) - .option("-d, --division ", "Division", parseInt) - .option("-r, --race-week-number ", "Race week number", parseInt) - .option("-o, --output ", "Output path") - .action(async (seasonId, carClassId, _, command) => { - const { credentials, clubId, division, raceWeekNumber, output } = - command.optsWithGlobals(); - - assertDivision(division); - - const api = createAPI(credentials); - console.log( - `Fetching season driver standings for ${seasonId} ${carClassId}...` - ); - const seasonDriverStandings = await api.statsSeasonDriverStandings({ - seasonId, - carClassId, - division, - raceWeekNumber, - }); - - handleOutput(seasonDriverStandings, output); - }); - -/** - * season-list command - */ -program - .command("season-list") - .argument("", "Season year", parseInt) - .argument("", "Season quarter", parseInt) - .description("Fetch season list") - .option("-o, --output ", "Output path") - .action(async (seasonYear, seasonQuarter, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching season list..."); - const seasonList = await api.seasonList({ seasonYear, seasonQuarter }); - - handleOutput(seasonList, output); - }); - -/** - * series command - */ -program - .command("series") - .description("Fetch series") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching series..."); - const series = await api.seriesGet(); - - handleOutput(series, output); - }); - -/** - * series-past-seasons command - */ -program - .command("series-past-seasons") - .argument("", "Series ID", parseInt) - .description("Fetch series past seasons") - .option("-o, --output ", "Output path") - .action(async (seriesId, _, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log(`Fetching past seasons for series ${seriesId}...`); - const seriesPastSeasons = await api.seriesPastSeasons({ seriesId }); - - handleOutput(seriesPastSeasons, output); - }); - -/** - * track-assets command - */ -program - .command("track-assets") - .description("Fetch track assets") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching track assets..."); - const trackAssets = await api.trackAssets(); - - handleOutput(trackAssets, output); - }); - -/** - * track-info command - */ -program - .command("track-info") - .description("Fetch track info") - .option("-o, --output ", "Output path") - .action(async (_, command) => { - const { credentials, output } = command.optsWithGlobals(); - const api = createAPI(credentials); - console.log("Fetching track info..."); - const trackInfo = await api.trackGet(); - - handleOutput(trackInfo, output); - }); - -program.parse(); diff --git a/packages/cli/src/storage.ts b/packages/cli/src/storage.ts deleted file mode 100644 index d32a129..0000000 --- a/packages/cli/src/storage.ts +++ /dev/null @@ -1,98 +0,0 @@ -import fs from "fs"; -import util from "util"; -import { - Cookie, - MemoryCookieStore, - MemoryCookieStoreIndex, -} from "tough-cookie"; - -/** - * Subclass of the `MemoryCookieStore` that persists cookies to a JSON file after all operations. - */ -export class JSONCookieStore extends MemoryCookieStore { - private _filePath: string; - - constructor(filePath: string) { - super(); - this._filePath = filePath; - if (util.inspect.custom) { - this[util.inspect.custom] = this.inspect; - } - this.idx = this.loadFromFile(); - } - - private inspect() { - return `{ idx: ${util.inspect(this.idx, false, 2)} }`; - } - - private saveToFile() { - fs.writeFileSync(this.filePath, JSON.stringify(this.idx)); - } - - private loadFromFile(): MemoryCookieStoreIndex { - let cookieData: string | null = null; - let cookiesJSON = {}; - - // If the file exists, load the raw data from the file path - if (fs.existsSync(this.filePath)) { - cookieData = fs.readFileSync(this.filePath, "utf8"); - } - - if (cookieData) { - try { - cookiesJSON = JSON.parse(cookieData); - } catch (error) { - console.error(error); - throw new Error(`Could not parse cookie file at ${this.filePath}.`); - } - } - - for (const domainName in cookiesJSON) { - for (const pathName in cookiesJSON[domainName]) { - for (const cookieName in cookiesJSON[domainName][pathName]) { - cookiesJSON[domainName][pathName][cookieName] = Cookie.fromJSON( - JSON.stringify(cookiesJSON[domainName][pathName][cookieName]) - ); - } - } - } - - return cookiesJSON; - } - - get filePath() { - return this._filePath; - } - - override async putCookie(cookie: Cookie): Promise { - await super.putCookie(cookie); - this.saveToFile(); - } - - override async updateCookie( - oldCookie: Cookie, - newCookie: Cookie - ): Promise { - await super.updateCookie(oldCookie, newCookie); - this.saveToFile(); - } - - override async removeCookie( - domain: string, - path: string, - key: string - ): Promise { - await super.removeCookie(domain, path, key); - this.saveToFile(); - } - - override async removeCookies(domain: string, path: string): Promise { - await super.removeCookies(domain, path); - this.saveToFile(); - } - - override async removeAllCookies(): Promise { - await super.removeAllCookies(); - this.saveToFile(); - } -} diff --git a/packages/cli/src/util.ts b/packages/cli/src/util.ts deleted file mode 100644 index f5f21cc..0000000 --- a/packages/cli/src/util.ts +++ /dev/null @@ -1,14 +0,0 @@ -import fs from "node:fs"; -/** - * Logs the data to the console or writes it to a file. - * @param data The data to be output - * @param output The path of the file to write the data to - */ -export function handleOutput(data: object, output?: string) { - if (output) { - fs.writeFileSync(output, JSON.stringify(data, null, 2)); - console.log("Output written to:", output); - } else { - console.log(JSON.stringify(data, null, 2)); - } -} diff --git a/packages/cli/tsconfig.build.json b/packages/cli/tsconfig.build.json deleted file mode 100644 index 5c1c0a5..0000000 --- a/packages/cli/tsconfig.build.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../tsconfig/node.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./bin", - "lib": ["dom"], - "noUnusedLocals": false, - // !!!: Don't output declaration or source maps - // !!!: This is a CLI, not a library, no need. - "declaration": false, - "declarationMap": false, - "sourceMap": false - }, - "exclude": ["node_modules", "bin", "dist"] -} diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json deleted file mode 100644 index 9abc5e7..0000000 --- a/packages/cli/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "include": [], - "references": [{ "path": "./tsconfig.build.json" }], - "compilerOptions": { - "paths": { - "@/*": ["src/*"] - } - } -} diff --git a/packages/helpers/api-schema-to-openapi/src/index.ts b/packages/helpers/api-schema-to-openapi/src/index.ts index b50793c..e4a883a 100644 --- a/packages/helpers/api-schema-to-openapi/src/index.ts +++ b/packages/helpers/api-schema-to-openapi/src/index.ts @@ -270,7 +270,7 @@ export async function generateOpenAPISpec({ "/data/doc/carclass": { get: { operationId: "getCarClassDocs", - tags: ["doc", "carclass"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -280,7 +280,7 @@ export async function generateOpenAPISpec({ "/data/doc/carclass/get": { get: { operationId: "getCarClassGetDocs", - tags: ["doc", "carclass"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -290,7 +290,7 @@ export async function generateOpenAPISpec({ "/data/doc/car": { get: { operationId: "getCarDocs", - tags: ["doc", "car"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -300,7 +300,7 @@ export async function generateOpenAPISpec({ "/data/doc/car/assets": { get: { operationId: "getCarAssetsDocs", - tags: ["doc", "car"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -310,7 +310,7 @@ export async function generateOpenAPISpec({ "/data/doc/car/get": { get: { operationId: "getCarGetDocs", - tags: ["doc", "car"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -320,7 +320,7 @@ export async function generateOpenAPISpec({ "/data/doc/constants": { get: { operationId: "getConstantsDocs", - tags: ["doc", "constants"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -330,7 +330,7 @@ export async function generateOpenAPISpec({ "/data/doc/constants/categories": { get: { operationId: "getConstantsCategoriesDocs", - tags: ["doc", "constants"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -340,7 +340,7 @@ export async function generateOpenAPISpec({ "/data/doc/constants/divisions": { get: { operationId: "getConstantsDivisionsDocs", - tags: ["doc", "constants"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -350,7 +350,7 @@ export async function generateOpenAPISpec({ "/data/doc/constants/event_types": { get: { operationId: "getConstantsEventTypesDocs", - tags: ["doc", "constants"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -360,7 +360,7 @@ export async function generateOpenAPISpec({ "/data/doc/driver_stats_by_category": { get: { operationId: "getDriverStatsByCategoryDocs", - tags: ["doc", "driver_stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -370,7 +370,7 @@ export async function generateOpenAPISpec({ "/data/doc/driver_stats_by_category/{category}": { get: { operationId: "getDriverStatsByCategoryCategoryDocs", - tags: ["doc", "driver_stats"], + tags: ["doc"], requestParams: { path: IRacingDriverStatsByCategoryPathSchema, }, @@ -383,7 +383,7 @@ export async function generateOpenAPISpec({ "/data/doc/hosted": { get: { operationId: "getHostedDocs", - tags: ["doc", "hosted"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -393,7 +393,7 @@ export async function generateOpenAPISpec({ "/data/doc/hosted/combined_sessions": { get: { operationId: "getHostedCombinedSessionsDocs", - tags: ["doc", "hosted"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -403,7 +403,7 @@ export async function generateOpenAPISpec({ "/data/doc/hosted/sessions": { get: { operationId: "getHostedSessionsDocs", - tags: ["doc", "hosted"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -413,7 +413,7 @@ export async function generateOpenAPISpec({ "/data/doc/league": { get: { operationId: "getLeagueDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -423,7 +423,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/cust_league_sessions": { get: { operationId: "getLeagueCustomerLeagueSessionsDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -433,7 +433,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/directory": { get: { operationId: "getLeagueDirectoryDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -443,7 +443,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/get": { get: { operationId: "getLeagueGetDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -453,7 +453,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/get_points_systems": { get: { operationId: "getLeagueGetPointsSystemsDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -463,7 +463,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/membership": { get: { operationId: "getLeagueMembershipDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -473,7 +473,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/roster": { get: { operationId: "getLeagueRosterDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -483,7 +483,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/seasons": { get: { operationId: "getLeagueSeasonsDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -493,7 +493,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/season_standings": { get: { operationId: "getLeagueSeasonStandingsDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -503,7 +503,7 @@ export async function generateOpenAPISpec({ "/data/doc/league/season_sessions": { get: { operationId: "getLeagueSeasonSessionsDocs", - tags: ["doc", "league"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -513,7 +513,7 @@ export async function generateOpenAPISpec({ "/data/doc/lookup": { get: { operationId: "getLookupDocs", - tags: ["doc", "lookup"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -523,7 +523,7 @@ export async function generateOpenAPISpec({ "/data/doc/lookup/countries": { get: { operationId: "getLookupCountriesDocs", - tags: ["doc", "lookup"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -533,7 +533,7 @@ export async function generateOpenAPISpec({ "/data/doc/lookup/drivers": { get: { operationId: "getLookupDriversDocs", - tags: ["doc", "lookup"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -543,7 +543,7 @@ export async function generateOpenAPISpec({ "/data/doc/lookup/flairs": { get: { operationId: "getLookupFlairsDocs", - tags: ["doc", "lookup"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -553,7 +553,7 @@ export async function generateOpenAPISpec({ "/data/doc/lookup/get": { get: { operationId: "getLookupGetDocs", - tags: ["doc", "lookup"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -563,7 +563,7 @@ export async function generateOpenAPISpec({ "/data/doc/lookup/licenses": { get: { operationId: "getLookupLicensesDocs", - tags: ["doc", "lookup"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -573,7 +573,7 @@ export async function generateOpenAPISpec({ "/data/doc/member": { get: { operationId: "getMemberDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -583,7 +583,7 @@ export async function generateOpenAPISpec({ "/data/doc/member/awards": { get: { operationId: "getMemberAwardsDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -593,7 +593,7 @@ export async function generateOpenAPISpec({ "/data/doc/member/award_instances": { get: { operationId: "getMemberAwardInstancesDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -603,7 +603,7 @@ export async function generateOpenAPISpec({ "/data/doc/member/chart_data": { get: { operationId: "getMemberChartDataDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -613,7 +613,7 @@ export async function generateOpenAPISpec({ "/data/doc/member/get": { get: { operationId: "getMemberGetDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -623,7 +623,7 @@ export async function generateOpenAPISpec({ "/data/doc/member/info": { get: { operationId: "getMemberInfoDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -633,7 +633,7 @@ export async function generateOpenAPISpec({ "/data/doc/member/participation_credits": { get: { operationId: "getMemberParticipationCreditsDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -643,7 +643,7 @@ export async function generateOpenAPISpec({ "/data/doc/member/profile": { get: { operationId: "getMemberProfileDocs", - tags: ["doc", "member"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -653,7 +653,7 @@ export async function generateOpenAPISpec({ "/data/doc/results": { get: { operationId: "getResultsDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -663,7 +663,7 @@ export async function generateOpenAPISpec({ "/data/doc/results/get": { get: { operationId: "getResultsGetDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -673,7 +673,7 @@ export async function generateOpenAPISpec({ "/data/doc/results/event_log": { get: { operationId: "getResultsEventLogDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -683,7 +683,7 @@ export async function generateOpenAPISpec({ "/data/doc/results/lap_chart_data": { get: { operationId: "getResultsLapChartDataDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -693,7 +693,7 @@ export async function generateOpenAPISpec({ "/data/doc/results/lap_data": { get: { operationId: "getResultsLapDataDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -703,7 +703,7 @@ export async function generateOpenAPISpec({ "/data/doc/results/search_hosted": { get: { operationId: "getResultsSearchHostedDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -713,7 +713,7 @@ export async function generateOpenAPISpec({ "/data/doc/results/search_series": { get: { operationId: "getResultsSearchSeriesDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -723,7 +723,7 @@ export async function generateOpenAPISpec({ "/data/doc/results/season_results": { get: { operationId: "getResultsSeasonResultsDocs", - tags: ["doc", "results"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -733,7 +733,7 @@ export async function generateOpenAPISpec({ "/data/doc/season": { get: { operationId: "getSeasonDocs", - tags: ["doc", "season"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -743,7 +743,7 @@ export async function generateOpenAPISpec({ "/data/doc/season/list": { get: { operationId: "getSeasonListDocs", - tags: ["doc", "season"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -753,7 +753,7 @@ export async function generateOpenAPISpec({ "/data/doc/season/race_guide": { get: { operationId: "getSeasonRaceGuideDocs", - tags: ["doc", "season"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -763,7 +763,7 @@ export async function generateOpenAPISpec({ "/data/doc/season/spectator_subsessionids": { get: { operationId: "getSeasonSpectatorSubsessionIdsDocs", - tags: ["doc", "season"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -773,7 +773,7 @@ export async function generateOpenAPISpec({ "/data/doc/season/spectator_subsessionids_detail": { get: { operationId: "getSeasonSpectatorSubsessionIdsDetailDocs", - tags: ["doc", "season"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -783,7 +783,7 @@ export async function generateOpenAPISpec({ "/data/doc/series": { get: { operationId: "getSeriesDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -793,7 +793,7 @@ export async function generateOpenAPISpec({ "/data/doc/series/assets": { get: { operationId: "getSeriesAssetsDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -803,7 +803,7 @@ export async function generateOpenAPISpec({ "/data/doc/series/get": { get: { operationId: "getSeriesGetDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -813,7 +813,7 @@ export async function generateOpenAPISpec({ "/data/doc/series/past_seasons": { get: { operationId: "getSeriesPastSeasonsDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -823,7 +823,7 @@ export async function generateOpenAPISpec({ "/data/doc/series/seasons": { get: { operationId: "getSeriesSeasonsDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -833,7 +833,7 @@ export async function generateOpenAPISpec({ "/data/doc/series/season_list": { get: { operationId: "getSeriesSeasonListDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -843,7 +843,7 @@ export async function generateOpenAPISpec({ "/data/doc/series/season_schedule": { get: { operationId: "getSeriesSeasonScheduleDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -853,7 +853,7 @@ export async function generateOpenAPISpec({ "/data/doc/series/stats_series": { get: { operationId: "getSeriesStatsSeriesDocs", - tags: ["doc", "series"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -863,7 +863,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats": { get: { operationId: "getStatsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -873,7 +873,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/member_bests": { get: { operationId: "getStatsMemberBestsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -883,7 +883,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/member_career": { get: { operationId: "getStatsMemberCareerDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -893,7 +893,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/member_division": { get: { operationId: "getStatsMemberDivisionDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -903,7 +903,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/member_recap": { get: { operationId: "getStatsMemberRecapDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -913,7 +913,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/member_recent_races": { get: { operationId: "getStatsMemberRecentRacesDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -923,7 +923,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/member_summary": { get: { operationId: "getStatsMemberSummaryDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -933,7 +933,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/member_yearly": { get: { operationId: "getStatsMemberYearlyDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -943,7 +943,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/season_driver_standings": { get: { operationId: "getStatsSeasonDriverStandingsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -953,7 +953,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/season_supersession_standings": { get: { operationId: "getStatsSeasonSupersessionStandingsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -963,7 +963,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/season_team_standings": { get: { operationId: "getStatsSeasonTeamStandingsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -973,7 +973,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/season_tt_standings": { get: { operationId: "getStatsSeasonTTStandingsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -983,7 +983,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/season_tt_results": { get: { operationId: "getStatsSeasonTTResultsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -993,7 +993,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/season_qualify_results": { get: { operationId: "getStatsSeasonQualifyResultsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1003,7 +1003,7 @@ export async function generateOpenAPISpec({ "/data/doc/stats/world_records": { get: { operationId: "getStatsWorldRecordsDocs", - tags: ["doc", "stats"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1013,7 +1013,7 @@ export async function generateOpenAPISpec({ "/data/doc/team": { get: { operationId: "getTeamDocs", - tags: ["doc", "team"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1023,7 +1023,7 @@ export async function generateOpenAPISpec({ "/data/doc/team/get": { get: { operationId: "getTeamGetDocs", - tags: ["doc", "team"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1033,7 +1033,7 @@ export async function generateOpenAPISpec({ "/data/doc/team/membership": { get: { operationId: "getTeamMembershipDocs", - tags: ["doc", "team"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1043,7 +1043,7 @@ export async function generateOpenAPISpec({ "/data/doc/time_attack": { get: { operationId: "getTimeAttackDocs", - tags: ["doc", "time_attack"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1053,7 +1053,7 @@ export async function generateOpenAPISpec({ "/data/doc/time_attack/member_season_results": { get: { operationId: "getTimeAttackMemberSeasonResultsDocs", - tags: ["doc", "time_attack"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1063,7 +1063,7 @@ export async function generateOpenAPISpec({ "/data/doc/track": { get: { operationId: "getTrackDocs", - tags: ["doc", "track"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1073,7 +1073,7 @@ export async function generateOpenAPISpec({ "/data/doc/track/assets": { get: { operationId: "getTrackAssetsDocs", - tags: ["doc", "track"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, @@ -1083,7 +1083,7 @@ export async function generateOpenAPISpec({ "/data/doc/track/get": { get: { operationId: "getTrackGetDocs", - tags: ["doc", "track"], + tags: ["doc"], responses: { 200: { $ref: "#/components/responses/ServiceMethodDocs" }, 401: { $ref: "#/components/responses/Unauthorized" }, diff --git a/packages/helpers/oauth-schema-to-openapi/package.json b/packages/helpers/oauth-schema-to-openapi/package.json index 89aa2ba..2699bca 100644 --- a/packages/helpers/oauth-schema-to-openapi/package.json +++ b/packages/helpers/oauth-schema-to-openapi/package.json @@ -10,6 +10,7 @@ "build": "tsc --build tsconfig.build.json" }, "dependencies": { + "@iracing-data/api-schema": "workspace:*", "@iracing-data/oauth-schema": "workspace:*", "commander": "^14.0.2", "zod": "^4.1.12", diff --git a/packages/helpers/oauth-schema-to-openapi/src/index.ts b/packages/helpers/oauth-schema-to-openapi/src/index.ts index 1c21016..ffe642a 100644 --- a/packages/helpers/oauth-schema-to-openapi/src/index.ts +++ b/packages/helpers/oauth-schema-to-openapi/src/index.ts @@ -1,3 +1,4 @@ +import { IRacingErrorResponseSchema } from "@iracing-data/api-schema"; import { IRacingOAuthAuthorizeParametersSchema, IRacingOAuthHeadersSchema, @@ -37,7 +38,7 @@ export async function generateOpenAPISpec({ }, servers: [ { - url: "https://oauth.iracing.com", + url: "https://oauth.iracing.com/oauth2", description: "iRacing OAuth server.", }, ], @@ -53,13 +54,31 @@ export async function generateOpenAPISpec({ headers: IRacingOAuthHeadersSchema, description: "Session(s) were successfully revoked.", }, + Unauthorized: { + description: "Access token is missing or invalid.", + content: { + "application/json": { + schema: IRacingErrorResponseSchema, + }, + }, + }, + }, + securitySchemes: { + bearerAuth: { + type: "http", + scheme: "bearer", + bearerFormat: "JWT", + description: "JWT Authentication", + }, }, }, paths: { - "/oauth2/iracing/profile": { + "/iracing/profile": { get: { + security: [{ bearerAuth: [] }], responses: { 200: { + description: "Success", headers: IRacingOAuthHeadersSchema, content: { "application/json": { @@ -71,10 +90,12 @@ export async function generateOpenAPISpec({ }, }, }, - "/oauth2/sessions": { + "/sessions": { get: { + security: [{ bearerAuth: [] }], responses: { 200: { + description: "Success", headers: IRacingOAuthHeadersSchema, content: { "application/json": { @@ -86,8 +107,9 @@ export async function generateOpenAPISpec({ }, }, }, - "/oauth2/revoke/current": { + "/revoke/current": { post: { + security: [{ bearerAuth: [] }], requestBody: { content: { "application/x-www-form-urlencoded": { @@ -101,8 +123,9 @@ export async function generateOpenAPISpec({ }, }, }, - "/oauth2/revoke/sessions": { + "/revoke/sessions": { post: { + security: [{ bearerAuth: [] }], requestBody: { content: { "application/x-www-form-urlencoded": { @@ -116,15 +139,16 @@ export async function generateOpenAPISpec({ }, }, }, - "/oauth2/revoke/client": { + "/revoke/client": { post: { + security: [{ bearerAuth: [] }], responses: { 200: { $ref: "#/components/responses/SessionsRevoked" }, 401: { $ref: "#/components/responses/Unauthorized" }, }, }, }, - "/oauth2/authorize": { + "/authorize": { get: { requestParams: { query: IRacingOAuthAuthorizeParametersSchema, @@ -136,7 +160,7 @@ export async function generateOpenAPISpec({ }, }, }, - "/oauth2/token": { + "/token": { post: { requestBody: { content: { diff --git a/packages/oauth/client/package.json b/packages/oauth/client/package.json index 4763e51..eda9fa6 100644 --- a/packages/oauth/client/package.json +++ b/packages/oauth/client/package.json @@ -7,6 +7,7 @@ "build": "tsc --build tsconfig.build.json" }, "dependencies": { + "@iracing-data/oauth-schema": "workspace:*", "oauth4webapi": "^3.7.0", "zod": "^4.0.17" } diff --git a/packages/oauth/client/src/client.ts b/packages/oauth/client/src/client.ts index e3f4dd9..1d9a6f7 100644 --- a/packages/oauth/client/src/client.ts +++ b/packages/oauth/client/src/client.ts @@ -1,16 +1,18 @@ +import { + IRacingOAuthTokenResponseSchema, + IRacingOAuthTokenResponse, +} from "@iracing-data/oauth-schema"; import * as oauth from "oauth4webapi"; import { OAuthCallbackError } from "./oauth-callback-error"; import { IRacingOAuthClientMetadata, IRacingOAuthClientMetadataInput, IRacingOAuthClientMetadataSchema, - IRacingOAuthTokenResponse, - IRacingOAuthTokenResponseSchema, StateStore, } from "./schema"; import { sanitizeTokenResponse } from "./utils"; -type OAuthClientOptions = { +export type OAuthClientOptions = { // Config clientMetadata: Readonly; @@ -185,3 +187,5 @@ export class OAuthClient { return await IRacingOAuthTokenResponseSchema.parseAsync(result); } } + +export type { IRacingOAuthTokenResponse }; diff --git a/packages/oauth/client/src/constants.ts b/packages/oauth/client/src/constants.ts deleted file mode 100644 index 063c18c..0000000 --- a/packages/oauth/client/src/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const BASE_URL = "https://oauth.iracing.com/oauth2"; -export const DEFAULT_AUTH_URL = `${BASE_URL}/authorize`; -export const DEFAULT_TOKEN_URL = `${BASE_URL}/token`; diff --git a/packages/oauth/client/src/index.ts b/packages/oauth/client/src/index.ts index 2b608c3..7d17b7e 100644 --- a/packages/oauth/client/src/index.ts +++ b/packages/oauth/client/src/index.ts @@ -1,3 +1,2 @@ export * from "./client"; -export * from "./constants"; export * from "./schema"; diff --git a/packages/oauth/client/src/schema/oauth.ts b/packages/oauth/client/src/schema/oauth.ts index fb3babd..e3d31f4 100644 --- a/packages/oauth/client/src/schema/oauth.ts +++ b/packages/oauth/client/src/schema/oauth.ts @@ -1,5 +1,30 @@ import { z } from "zod/v4"; -import { DEFAULT_AUTH_URL, DEFAULT_TOKEN_URL, BASE_URL } from "../constants"; + +const DEFAULT_OAUTH_URL = "https://oauth.iracing.com/oauth2"; +const DEFAULT_AUTH_URL = `${DEFAULT_OAUTH_URL}/authorize`; +const DEFAULT_TOKEN_URL = `${DEFAULT_OAUTH_URL}/token`; + +export const IRacingOAuthBaseURL = z.literal(DEFAULT_OAUTH_URL).meta({ + id: "iracingOAuthURL", + title: "iRacing OAuth Service URL", + description: "The URL for the iRacing OAuth service", +}); + +export const IRacingOAuthAuthorizationURL = z + .templateLiteral([IRacingOAuthBaseURL, "/authorize"]) + .meta({ + id: "iracingOAuthAuthorizationURL", + title: "iRacing OAuth Service Authorization Endpoint", + description: "The endpoint for authorization.", + }); + +export const IRacingOAuthTokenURL = z + .templateLiteral([IRacingOAuthBaseURL, "/token"]) + .meta({ + id: "iracingOAuthTokenURL", + title: "iRacing OAuth Service Token Endpoint", + description: "The endpoint for token exchange.", + }); // Allowed scopes. See: https://oauth.iracing.com/oauth2/book/scopes.html export const IRacingOAuthScopeSchema = z.enum([ @@ -25,7 +50,7 @@ export const IRacingOAuthClientMetadataSchema = z id: "authorizationUrl", title: "Authorization URL", description: `The URL to use when making authorization requests. Defaults to "${DEFAULT_AUTH_URL}"`, - note: "The default is acceptable in 99% of use-cases, but is able to be overridden in case iRacing makes changes to the URLs.", + note: "The default is acceptable in 99.9% of use-cases, but is able to be overridden in case iRacing makes changes to the URLs.", }), tokenUrl: z .url() @@ -34,16 +59,16 @@ export const IRacingOAuthClientMetadataSchema = z id: "tokenUrl", title: "Token URL", description: `The URL to use when making token requests. Defaults to "${DEFAULT_TOKEN_URL}"`, - note: "The default is acceptable in 99% of use-cases, but is able to be overridden in case iRacing makes changes to the URLs.", + note: "The default is acceptable in 99.9% of use-cases, but is able to be overridden in case iRacing makes changes to the URLs.", }), issuer: z .url() - .default(BASE_URL) + .default(DEFAULT_OAUTH_URL) .meta({ id: "issuer", title: "Issuer", - description: `The OAuth2.0 issuer to use in discovery cases. Defaults to "${BASE_URL}"`, - note: "The default is acceptable in 99% of use-cases, but is able to be overridden in case iRacing makes changes to the URLs.", + description: `The OAuth2.0 issuer to use in discovery cases. Defaults to "${DEFAULT_OAUTH_URL}"`, + note: "The default is acceptable in 99.9% of use-cases, but is able to be overridden in case iRacing makes changes to the URLs.", }), scopes: IRacingOAuthScopesSchema.meta({ id: "scopes", @@ -57,6 +82,12 @@ export const IRacingOAuthClientMetadataSchema = z description: "The client ID provided by iRacing after client registration. See: https://oauth.iracing.com/oauth2/book/client_registration.html", }), + clientSecret: z.string().optional().meta({ + id: "clientSecret", + title: "Client secret", + description: + "The client secret optionally provided by iRacing during client registration. See: https://oauth.iracing.com/oauth2/book/client_registration.html", + }), redirectUri: z.url().meta({ id: "redirectUri", title: "Redirect URI", @@ -76,24 +107,16 @@ export const IRacingOAuthClientMetadataSchema = z description: "Metadata the user must provide to use the client.", }); -export const IRacingOAuthCallbackSchema = z.object({ - state: z.string(), - code: z.string(), -}); - -export const IRacingOAuthTokenResponseSchema = z.object({ - access_token: z.string(), - token_type: z.literal("bearer"), - expires_in: z.number(), - refresh_token: z.string().optional(), - refresh_token_expires_in: z.number().optional(), - scope: z.string().trim(), -}); - /** * Type exports */ +export type IRacingOAuthURL = z.infer; +export type IRacingAuthorizationURL = z.infer< + typeof IRacingOAuthAuthorizationURL +>; +export type IRacingTokenURL = z.infer; + export type IRacingOAuthScope = z.infer; export type IRacingOAuthClientMetadataInput = z.input< @@ -103,11 +126,3 @@ export type IRacingOAuthClientMetadataInput = z.input< export type IRacingOAuthClientMetadata = z.infer< typeof IRacingOAuthClientMetadataSchema >; - -export type IRacingOAuthCallbackInput = z.infer< - typeof IRacingOAuthCallbackSchema ->; - -export type IRacingOAuthTokenResponse = z.infer< - typeof IRacingOAuthTokenResponseSchema ->; diff --git a/packages/oauth/router/README.md b/packages/oauth/router/README.md new file mode 100644 index 0000000..ff4b0b7 --- /dev/null +++ b/packages/oauth/router/README.md @@ -0,0 +1,11 @@ +# @iracing-data/oauth-router + +A better-call router for the iRacing OAuth services. + +Adds a `/signin`, `signout`, and configurable callback API for the iRacing OAuth flow. + +Example can be found in [iracing-proxy-api-example](../../../examples/iracing-proxy-api-example). + +## Installation + +## Usage diff --git a/packages/oauth/router/openapi/spec.json b/packages/oauth/router/openapi/spec.json new file mode 100644 index 0000000..22e3860 --- /dev/null +++ b/packages/oauth/router/openapi/spec.json @@ -0,0 +1,521 @@ +{ + "openapi": "3.1.1", + "info": { + "title": "iRacing OAuth API", + "version": "0.0.1" + }, + "servers": [ + { + "url": "https://oauth.iracing.com/oauth2", + "description": "iRacing OAuth server." + } + ], + "externalDocs": { + "url": "/oauth2/book" + }, + "paths": { + "/iracing/profile": { + "get": { + "security": [ + { + "bearerAuth": [] + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-request-id": { + "$ref": "#/components/headers/x-request-id" + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "iracing_name": { + "type": "string" + }, + "iracing_cust_id": { + "type": "number" + } + }, + "required": [ + "iracing_name", + "iracing_cust_id" + ], + "additionalProperties": false + } + } + } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/sessions": { + "get": { + "security": [ + { + "bearerAuth": [] + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-request-id": { + "$ref": "#/components/headers/x-request-id" + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "sessions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "session_id": { + "description": "A session identifier. This value is considered opaque and its format may change without warning at our discretion.", + "type": "string" + }, + "client_id": { + "description": "A client identifier.", + "type": "string" + }, + "client_name": { + "description": "The name of the client as selected during client registration.", + "type": "string" + }, + "client_developer_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "client_developer_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "client_developer_email": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "scope": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "scope_descriptions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "current_session": { + "type": "boolean" + }, + "impersonated": { + "type": "boolean" + }, + "impersonation_note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "first_ip": { + "anyOf": [ + { + "type": "string", + "format": "ipv4", + "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$" + }, + { + "type": "null" + } + ] + }, + "first_continent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "first_country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "first_subdivisions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "first_city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "first_user_agent_header": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "first_user_agent_operating_system": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "first_user_agent_browser": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_ip": { + "anyOf": [ + { + "type": "string", + "format": "ipv4", + "pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$" + }, + { + "type": "null" + } + ] + }, + "last_continent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_subdivisions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_user_agent_header": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_user_agent_operating_system": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_user_agent_browser": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "session_id", + "client_id", + "client_name", + "client_developer_name", + "client_developer_url", + "client_developer_email", + "scope", + "scope_descriptions", + "current_session", + "impersonated", + "impersonation_note", + "first_ip", + "first_continent", + "first_country", + "first_subdivisions", + "first_city", + "first_user_agent_header", + "first_user_agent_operating_system", + "first_user_agent_browser", + "last_ip", + "last_continent", + "last_country", + "last_subdivisions", + "last_city", + "last_user_agent_header", + "last_user_agent_operating_system", + "last_user_agent_browser" + ], + "additionalProperties": false + } + } + }, + "required": [ + "sessions" + ], + "additionalProperties": false + } + } + } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/revoke/current": { + "post": { + "security": [ + { + "bearerAuth": [] + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "forgetBrowser": { + "type": "boolean" + } + } + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/SessionsRevoked" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/revoke/sessions": { + "post": { + "security": [ + { + "bearerAuth": [] + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "sessionIds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "sessionIds" + ] + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/SessionsRevoked" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + }, + "/revoke/client": { + "post": { + "security": [ + { + "bearerAuth": [] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/SessionsRevoked" + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + } + } + } + } + }, + "components": { + "schemas": { + "errorResponse": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "message": { + "type": "string" + }, + "note": { + "type": "string" + } + }, + "required": [ + "error" + ], + "additionalProperties": false + } + }, + "headers": { + "x-request-id": { + "required": true, + "description": "Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.", + "schema": { + "title": "Request ID", + "description": "Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.", + "type": "string" + } + } + }, + "responses": { + "SessionsRevoked": { + "description": "Session(s) were successfully revoked.", + "headers": { + "x-request-id": { + "$ref": "#/components/headers/x-request-id" + } + } + }, + "Unauthorized": { + "description": "Access token is missing or invalid.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/errorResponse" + } + } + } + } + }, + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "JWT Authentication" + } + } + } +} \ No newline at end of file diff --git a/packages/oauth/router/openapitools.json b/packages/oauth/router/openapitools.json new file mode 100644 index 0000000..f052220 --- /dev/null +++ b/packages/oauth/router/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "7.17.0" + } +} diff --git a/packages/oauth/router/package.json b/packages/oauth/router/package.json new file mode 100644 index 0000000..7b828f6 --- /dev/null +++ b/packages/oauth/router/package.json @@ -0,0 +1,17 @@ +{ + "name": "@iracing-data/oauth-router", + "version": "0.0.1-alpha.0", + "description": "better-call based router for the iRacing OAuth API.", + "main": "dist/index.js", + "scripts": { + "build": "tsc --build tsconfig.build.json", + "codegen:client": "openapi-generator-cli generate -g typescript-fetch -i openapi/spec.json -o src/client --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case'" + }, + "dependencies": { + "@iracing-data/oauth-client": "workspace:*", + "better-call": "^1.0.26" + }, + "devDependencies": { + "@openapitools/openapi-generator-cli": "^2.25.0" + } +} \ No newline at end of file diff --git a/packages/oauth/router/src/client/.openapi-generator-ignore b/packages/oauth/router/src/client/.openapi-generator-ignore new file mode 100644 index 0000000..7484ee5 --- /dev/null +++ b/packages/oauth/router/src/client/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/packages/oauth/router/src/client/.openapi-generator/FILES b/packages/oauth/router/src/client/.openapi-generator/FILES new file mode 100644 index 0000000..f9b79f7 --- /dev/null +++ b/packages/oauth/router/src/client/.openapi-generator/FILES @@ -0,0 +1,15 @@ +.openapi-generator-ignore +apis/DefaultApi.ts +apis/index.ts +docs/DefaultApi.md +docs/ErrorResponse.md +docs/IracingProfileGet200Response.md +docs/SessionsGet200Response.md +docs/SessionsGet200ResponseSessionsInner.md +index.ts +models/ErrorResponse.ts +models/IracingProfileGet200Response.ts +models/SessionsGet200Response.ts +models/SessionsGet200ResponseSessionsInner.ts +models/index.ts +runtime.ts diff --git a/packages/oauth/router/src/client/.openapi-generator/VERSION b/packages/oauth/router/src/client/.openapi-generator/VERSION new file mode 100644 index 0000000..6328c54 --- /dev/null +++ b/packages/oauth/router/src/client/.openapi-generator/VERSION @@ -0,0 +1 @@ +7.17.0 diff --git a/packages/oauth/router/src/client/apis/DefaultApi.ts b/packages/oauth/router/src/client/apis/DefaultApi.ts new file mode 100644 index 0000000..070079f --- /dev/null +++ b/packages/oauth/router/src/client/apis/DefaultApi.ts @@ -0,0 +1,261 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing OAuth API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +import * as runtime from '../runtime'; +import type { + ErrorResponse, + IracingProfileGet200Response, + SessionsGet200Response, +} from '../models/index'; +import { + ErrorResponseFromJSON, + ErrorResponseToJSON, + IracingProfileGet200ResponseFromJSON, + IracingProfileGet200ResponseToJSON, + SessionsGet200ResponseFromJSON, + SessionsGet200ResponseToJSON, +} from '../models/index'; + +export interface RevokeCurrentPostRequest { + forget_browser?: boolean; +} + +export interface RevokeSessionsPostRequest { + session_ids: Array; +} + +/** + * + */ +export class DefaultApi extends runtime.BaseAPI { + + /** + */ + async iracingProfileGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/iracing/profile`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => IracingProfileGet200ResponseFromJSON(jsonValue)); + } + + /** + */ + async iracingProfileGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.iracingProfileGetRaw(initOverrides); + return await response.value(); + } + + /** + */ + async revokeClientPostRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/revoke/client`; + + const response = await this.request({ + path: urlPath, + method: 'POST', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async revokeClientPost(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.revokeClientPostRaw(initOverrides); + } + + /** + */ + async revokeCurrentPostRaw(requestParameters: RevokeCurrentPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const consumes: runtime.Consume[] = [ + { contentType: 'application/x-www-form-urlencoded' }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters['forget_browser'] != null) { + formParams.append('forgetBrowser', requestParameters['forget_browser'] as any); + } + + + let urlPath = `/revoke/current`; + + const response = await this.request({ + path: urlPath, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: formParams, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async revokeCurrentPost(requestParameters: RevokeCurrentPostRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.revokeCurrentPostRaw(requestParameters, initOverrides); + } + + /** + */ + async revokeSessionsPostRaw(requestParameters: RevokeSessionsPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + if (requestParameters['session_ids'] == null) { + throw new runtime.RequiredError( + 'session_ids', + 'Required parameter "session_ids" was null or undefined when calling revokeSessionsPost().' + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + const consumes: runtime.Consume[] = [ + { contentType: 'application/x-www-form-urlencoded' }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters['session_ids'] != null) { + formParams.append('sessionIds', requestParameters['session_ids']!.join(runtime.COLLECTION_FORMATS["csv"])); + } + + + let urlPath = `/revoke/sessions`; + + const response = await this.request({ + path: urlPath, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: formParams, + }, initOverrides); + + return new runtime.VoidApiResponse(response); + } + + /** + */ + async revokeSessionsPost(requestParameters: RevokeSessionsPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + await this.revokeSessionsPostRaw(requestParameters, initOverrides); + } + + /** + */ + async sessionsGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + const token = this.configuration.accessToken; + const tokenString = await token("bearerAuth", []); + + if (tokenString) { + headerParameters["Authorization"] = `Bearer ${tokenString}`; + } + } + + let urlPath = `/sessions`; + + const response = await this.request({ + path: urlPath, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => SessionsGet200ResponseFromJSON(jsonValue)); + } + + /** + */ + async sessionsGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + const response = await this.sessionsGetRaw(initOverrides); + return await response.value(); + } + +} diff --git a/packages/oauth/router/src/client/apis/index.ts b/packages/oauth/router/src/client/apis/index.ts new file mode 100644 index 0000000..69c44c0 --- /dev/null +++ b/packages/oauth/router/src/client/apis/index.ts @@ -0,0 +1,3 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './DefaultApi'; diff --git a/packages/oauth/router/src/client/docs/DefaultApi.md b/packages/oauth/router/src/client/docs/DefaultApi.md new file mode 100644 index 0000000..5ebd7a3 --- /dev/null +++ b/packages/oauth/router/src/client/docs/DefaultApi.md @@ -0,0 +1,339 @@ +# DefaultApi + +All URIs are relative to *https://oauth.iracing.com/oauth2* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**iracingProfileGet**](DefaultApi.md#iracingprofileget) | **GET** /iracing/profile | | +| [**revokeClientPost**](DefaultApi.md#revokeclientpost) | **POST** /revoke/client | | +| [**revokeCurrentPost**](DefaultApi.md#revokecurrentpost) | **POST** /revoke/current | | +| [**revokeSessionsPost**](DefaultApi.md#revokesessionspost) | **POST** /revoke/sessions | | +| [**sessionsGet**](DefaultApi.md#sessionsget) | **GET** /sessions | | + + + +## iracingProfileGet + +> IracingProfileGet200Response iracingProfileGet() + + + +### Example + +```ts +import { + Configuration, + DefaultApi, +} from ''; +import type { IracingProfileGetRequest } from ''; + +async function example() { + console.log("🚀 Testing SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DefaultApi(config); + + try { + const data = await api.iracingProfileGet(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**IracingProfileGet200Response**](IracingProfileGet200Response.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-request-id -
| +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## revokeClientPost + +> revokeClientPost() + + + +### Example + +```ts +import { + Configuration, + DefaultApi, +} from ''; +import type { RevokeClientPostRequest } from ''; + +async function example() { + console.log("🚀 Testing SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DefaultApi(config); + + try { + const data = await api.revokeClientPost(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +`void` (Empty response body) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Session(s) were successfully revoked. | * x-request-id -
| +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## revokeCurrentPost + +> revokeCurrentPost(forget_browser) + + + +### Example + +```ts +import { + Configuration, + DefaultApi, +} from ''; +import type { RevokeCurrentPostRequest } from ''; + +async function example() { + console.log("🚀 Testing SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DefaultApi(config); + + const body = { + // boolean (optional) + forget_browser: true, + } satisfies RevokeCurrentPostRequest; + + try { + const data = await api.revokeCurrentPost(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **forget_browser** | `boolean` | | [Optional] [Defaults to `undefined`] | + +### Return type + +`void` (Empty response body) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: `application/x-www-form-urlencoded` +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Session(s) were successfully revoked. | * x-request-id -
| +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## revokeSessionsPost + +> revokeSessionsPost(session_ids) + + + +### Example + +```ts +import { + Configuration, + DefaultApi, +} from ''; +import type { RevokeSessionsPostRequest } from ''; + +async function example() { + console.log("🚀 Testing SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DefaultApi(config); + + const body = { + // Array + session_ids: ..., + } satisfies RevokeSessionsPostRequest; + + try { + const data = await api.revokeSessionsPost(body); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **session_ids** | `Array` | | | + +### Return type + +`void` (Empty response body) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: `application/x-www-form-urlencoded` +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Session(s) were successfully revoked. | * x-request-id -
| +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + +## sessionsGet + +> SessionsGet200Response sessionsGet() + + + +### Example + +```ts +import { + Configuration, + DefaultApi, +} from ''; +import type { SessionsGetRequest } from ''; + +async function example() { + console.log("🚀 Testing SDK..."); + const config = new Configuration({ + // Configure HTTP bearer authorization: bearerAuth + accessToken: "YOUR BEARER TOKEN", + }); + const api = new DefaultApi(config); + + try { + const data = await api.sessionsGet(); + console.log(data); + } catch (error) { + console.error(error); + } +} + +// Run the test +example().catch(console.error); +``` + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**SessionsGet200Response**](SessionsGet200Response.md) + +### Authorization + +[bearerAuth](../README.md#bearerAuth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: `application/json` + + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Success | * x-request-id -
| +| **401** | Access token is missing or invalid. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + diff --git a/packages/oauth/router/src/client/docs/ErrorResponse.md b/packages/oauth/router/src/client/docs/ErrorResponse.md new file mode 100644 index 0000000..5b45671 --- /dev/null +++ b/packages/oauth/router/src/client/docs/ErrorResponse.md @@ -0,0 +1,38 @@ + +# ErrorResponse + + +## Properties + +Name | Type +------------ | ------------- +`error` | string +`message` | string +`note` | string + +## Example + +```typescript +import type { ErrorResponse } from '' + +// TODO: Update the object below with actual values +const example = { + "error": null, + "message": null, + "note": null, +} satisfies ErrorResponse + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as ErrorResponse +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/oauth/router/src/client/docs/IracingProfileGet200Response.md b/packages/oauth/router/src/client/docs/IracingProfileGet200Response.md new file mode 100644 index 0000000..1ffcd84 --- /dev/null +++ b/packages/oauth/router/src/client/docs/IracingProfileGet200Response.md @@ -0,0 +1,36 @@ + +# IracingProfileGet200Response + + +## Properties + +Name | Type +------------ | ------------- +`iracingName` | string +`iracingCustId` | number + +## Example + +```typescript +import type { IracingProfileGet200Response } from '' + +// TODO: Update the object below with actual values +const example = { + "iracingName": null, + "iracingCustId": null, +} satisfies IracingProfileGet200Response + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as IracingProfileGet200Response +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/oauth/router/src/client/docs/SessionsGet200Response.md b/packages/oauth/router/src/client/docs/SessionsGet200Response.md new file mode 100644 index 0000000..6622c87 --- /dev/null +++ b/packages/oauth/router/src/client/docs/SessionsGet200Response.md @@ -0,0 +1,34 @@ + +# SessionsGet200Response + + +## Properties + +Name | Type +------------ | ------------- +`sessions` | [Array<SessionsGet200ResponseSessionsInner>](SessionsGet200ResponseSessionsInner.md) + +## Example + +```typescript +import type { SessionsGet200Response } from '' + +// TODO: Update the object below with actual values +const example = { + "sessions": null, +} satisfies SessionsGet200Response + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as SessionsGet200Response +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/oauth/router/src/client/docs/SessionsGet200ResponseSessionsInner.md b/packages/oauth/router/src/client/docs/SessionsGet200ResponseSessionsInner.md new file mode 100644 index 0000000..5519018 --- /dev/null +++ b/packages/oauth/router/src/client/docs/SessionsGet200ResponseSessionsInner.md @@ -0,0 +1,86 @@ + +# SessionsGet200ResponseSessionsInner + + +## Properties + +Name | Type +------------ | ------------- +`sessionId` | string +`clientId` | string +`clientName` | string +`clientDeveloperName` | string +`clientDeveloperUrl` | string +`clientDeveloperEmail` | string +`scope` | string +`scopeDescriptions` | string +`currentSession` | boolean +`impersonated` | boolean +`impersonationNote` | string +`firstIp` | string +`firstContinent` | string +`firstCountry` | string +`firstSubdivisions` | string +`firstCity` | string +`firstUserAgentHeader` | string +`firstUserAgentOperatingSystem` | string +`firstUserAgentBrowser` | string +`lastIp` | string +`lastContinent` | string +`lastCountry` | string +`lastSubdivisions` | string +`lastCity` | string +`lastUserAgentHeader` | string +`lastUserAgentOperatingSystem` | string +`lastUserAgentBrowser` | string + +## Example + +```typescript +import type { SessionsGet200ResponseSessionsInner } from '' + +// TODO: Update the object below with actual values +const example = { + "sessionId": null, + "clientId": null, + "clientName": null, + "clientDeveloperName": null, + "clientDeveloperUrl": null, + "clientDeveloperEmail": null, + "scope": null, + "scopeDescriptions": null, + "currentSession": null, + "impersonated": null, + "impersonationNote": null, + "firstIp": null, + "firstContinent": null, + "firstCountry": null, + "firstSubdivisions": null, + "firstCity": null, + "firstUserAgentHeader": null, + "firstUserAgentOperatingSystem": null, + "firstUserAgentBrowser": null, + "lastIp": null, + "lastContinent": null, + "lastCountry": null, + "lastSubdivisions": null, + "lastCity": null, + "lastUserAgentHeader": null, + "lastUserAgentOperatingSystem": null, + "lastUserAgentBrowser": null, +} satisfies SessionsGet200ResponseSessionsInner + +console.log(example) + +// Convert the instance to a JSON string +const exampleJSON: string = JSON.stringify(example) +console.log(exampleJSON) + +// Parse the JSON string back to an object +const exampleParsed = JSON.parse(exampleJSON) as SessionsGet200ResponseSessionsInner +console.log(exampleParsed) +``` + +[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md) + + diff --git a/packages/oauth/router/src/client/index.ts b/packages/oauth/router/src/client/index.ts new file mode 100644 index 0000000..bebe8bb --- /dev/null +++ b/packages/oauth/router/src/client/index.ts @@ -0,0 +1,5 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './runtime'; +export * from './apis/index'; +export * from './models/index'; diff --git a/packages/oauth/router/src/client/models/ErrorResponse.ts b/packages/oauth/router/src/client/models/ErrorResponse.ts new file mode 100644 index 0000000..8e05e35 --- /dev/null +++ b/packages/oauth/router/src/client/models/ErrorResponse.ts @@ -0,0 +1,82 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing OAuth API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface ErrorResponse + */ +export interface ErrorResponse { + /** + * + * @type {string} + * @memberof ErrorResponse + */ + error: string; + /** + * + * @type {string} + * @memberof ErrorResponse + */ + message?: string; + /** + * + * @type {string} + * @memberof ErrorResponse + */ + note?: string; +} + +/** + * Check if a given object implements the ErrorResponse interface. + */ +export function instanceOfErrorResponse(value: object): value is ErrorResponse { + if (!('error' in value) || value['error'] === undefined) return false; + return true; +} + +export function ErrorResponseFromJSON(json: any): ErrorResponse { + return ErrorResponseFromJSONTyped(json, false); +} + +export function ErrorResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): ErrorResponse { + if (json == null) { + return json; + } + return { + + 'error': json['error'], + 'message': json['message'] == null ? undefined : json['message'], + 'note': json['note'] == null ? undefined : json['note'], + }; +} + +export function ErrorResponseToJSON(json: any): ErrorResponse { + return ErrorResponseToJSONTyped(json, false); +} + +export function ErrorResponseToJSONTyped(value?: ErrorResponse | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'error': value['error'], + 'message': value['message'], + 'note': value['note'], + }; +} + diff --git a/packages/oauth/router/src/client/models/IracingProfileGet200Response.ts b/packages/oauth/router/src/client/models/IracingProfileGet200Response.ts new file mode 100644 index 0000000..c181660 --- /dev/null +++ b/packages/oauth/router/src/client/models/IracingProfileGet200Response.ts @@ -0,0 +1,75 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing OAuth API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface IracingProfileGet200Response + */ +export interface IracingProfileGet200Response { + /** + * + * @type {string} + * @memberof IracingProfileGet200Response + */ + iracingName: string; + /** + * + * @type {number} + * @memberof IracingProfileGet200Response + */ + iracingCustId: number; +} + +/** + * Check if a given object implements the IracingProfileGet200Response interface. + */ +export function instanceOfIracingProfileGet200Response(value: object): value is IracingProfileGet200Response { + if (!('iracingName' in value) || value['iracingName'] === undefined) return false; + if (!('iracingCustId' in value) || value['iracingCustId'] === undefined) return false; + return true; +} + +export function IracingProfileGet200ResponseFromJSON(json: any): IracingProfileGet200Response { + return IracingProfileGet200ResponseFromJSONTyped(json, false); +} + +export function IracingProfileGet200ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): IracingProfileGet200Response { + if (json == null) { + return json; + } + return { + + 'iracingName': json['iracing_name'], + 'iracingCustId': json['iracing_cust_id'], + }; +} + +export function IracingProfileGet200ResponseToJSON(json: any): IracingProfileGet200Response { + return IracingProfileGet200ResponseToJSONTyped(json, false); +} + +export function IracingProfileGet200ResponseToJSONTyped(value?: IracingProfileGet200Response | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'iracing_name': value['iracingName'], + 'iracing_cust_id': value['iracingCustId'], + }; +} + diff --git a/packages/oauth/router/src/client/models/SessionsGet200Response.ts b/packages/oauth/router/src/client/models/SessionsGet200Response.ts new file mode 100644 index 0000000..de64b5b --- /dev/null +++ b/packages/oauth/router/src/client/models/SessionsGet200Response.ts @@ -0,0 +1,74 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing OAuth API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { SessionsGet200ResponseSessionsInner } from './SessionsGet200ResponseSessionsInner'; +import { + SessionsGet200ResponseSessionsInnerFromJSON, + SessionsGet200ResponseSessionsInnerFromJSONTyped, + SessionsGet200ResponseSessionsInnerToJSON, + SessionsGet200ResponseSessionsInnerToJSONTyped, +} from './SessionsGet200ResponseSessionsInner'; + +/** + * + * @export + * @interface SessionsGet200Response + */ +export interface SessionsGet200Response { + /** + * + * @type {Array} + * @memberof SessionsGet200Response + */ + sessions: Array; +} + +/** + * Check if a given object implements the SessionsGet200Response interface. + */ +export function instanceOfSessionsGet200Response(value: object): value is SessionsGet200Response { + if (!('sessions' in value) || value['sessions'] === undefined) return false; + return true; +} + +export function SessionsGet200ResponseFromJSON(json: any): SessionsGet200Response { + return SessionsGet200ResponseFromJSONTyped(json, false); +} + +export function SessionsGet200ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): SessionsGet200Response { + if (json == null) { + return json; + } + return { + + 'sessions': ((json['sessions'] as Array).map(SessionsGet200ResponseSessionsInnerFromJSON)), + }; +} + +export function SessionsGet200ResponseToJSON(json: any): SessionsGet200Response { + return SessionsGet200ResponseToJSONTyped(json, false); +} + +export function SessionsGet200ResponseToJSONTyped(value?: SessionsGet200Response | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'sessions': ((value['sessions'] as Array).map(SessionsGet200ResponseSessionsInnerToJSON)), + }; +} + diff --git a/packages/oauth/router/src/client/models/SessionsGet200ResponseSessionsInner.ts b/packages/oauth/router/src/client/models/SessionsGet200ResponseSessionsInner.ts new file mode 100644 index 0000000..276079c --- /dev/null +++ b/packages/oauth/router/src/client/models/SessionsGet200ResponseSessionsInner.ts @@ -0,0 +1,300 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing OAuth API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +/** + * + * @export + * @interface SessionsGet200ResponseSessionsInner + */ +export interface SessionsGet200ResponseSessionsInner { + /** + * A session identifier. This value is considered opaque and its format may change without warning at our discretion. + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + sessionId: string; + /** + * A client identifier. + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + clientId: string; + /** + * The name of the client as selected during client registration. + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + clientName: string; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + clientDeveloperName: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + clientDeveloperUrl: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + clientDeveloperEmail: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + scope: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + scopeDescriptions: string | null; + /** + * + * @type {boolean} + * @memberof SessionsGet200ResponseSessionsInner + */ + currentSession: boolean; + /** + * + * @type {boolean} + * @memberof SessionsGet200ResponseSessionsInner + */ + impersonated: boolean; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + impersonationNote: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstIp: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstContinent: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstCountry: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstSubdivisions: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstCity: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstUserAgentHeader: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstUserAgentOperatingSystem: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + firstUserAgentBrowser: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastIp: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastContinent: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastCountry: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastSubdivisions: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastCity: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastUserAgentHeader: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastUserAgentOperatingSystem: string | null; + /** + * + * @type {string} + * @memberof SessionsGet200ResponseSessionsInner + */ + lastUserAgentBrowser: string | null; +} + +/** + * Check if a given object implements the SessionsGet200ResponseSessionsInner interface. + */ +export function instanceOfSessionsGet200ResponseSessionsInner(value: object): value is SessionsGet200ResponseSessionsInner { + if (!('sessionId' in value) || value['sessionId'] === undefined) return false; + if (!('clientId' in value) || value['clientId'] === undefined) return false; + if (!('clientName' in value) || value['clientName'] === undefined) return false; + if (!('clientDeveloperName' in value) || value['clientDeveloperName'] === undefined) return false; + if (!('clientDeveloperUrl' in value) || value['clientDeveloperUrl'] === undefined) return false; + if (!('clientDeveloperEmail' in value) || value['clientDeveloperEmail'] === undefined) return false; + if (!('scope' in value) || value['scope'] === undefined) return false; + if (!('scopeDescriptions' in value) || value['scopeDescriptions'] === undefined) return false; + if (!('currentSession' in value) || value['currentSession'] === undefined) return false; + if (!('impersonated' in value) || value['impersonated'] === undefined) return false; + if (!('impersonationNote' in value) || value['impersonationNote'] === undefined) return false; + if (!('firstIp' in value) || value['firstIp'] === undefined) return false; + if (!('firstContinent' in value) || value['firstContinent'] === undefined) return false; + if (!('firstCountry' in value) || value['firstCountry'] === undefined) return false; + if (!('firstSubdivisions' in value) || value['firstSubdivisions'] === undefined) return false; + if (!('firstCity' in value) || value['firstCity'] === undefined) return false; + if (!('firstUserAgentHeader' in value) || value['firstUserAgentHeader'] === undefined) return false; + if (!('firstUserAgentOperatingSystem' in value) || value['firstUserAgentOperatingSystem'] === undefined) return false; + if (!('firstUserAgentBrowser' in value) || value['firstUserAgentBrowser'] === undefined) return false; + if (!('lastIp' in value) || value['lastIp'] === undefined) return false; + if (!('lastContinent' in value) || value['lastContinent'] === undefined) return false; + if (!('lastCountry' in value) || value['lastCountry'] === undefined) return false; + if (!('lastSubdivisions' in value) || value['lastSubdivisions'] === undefined) return false; + if (!('lastCity' in value) || value['lastCity'] === undefined) return false; + if (!('lastUserAgentHeader' in value) || value['lastUserAgentHeader'] === undefined) return false; + if (!('lastUserAgentOperatingSystem' in value) || value['lastUserAgentOperatingSystem'] === undefined) return false; + if (!('lastUserAgentBrowser' in value) || value['lastUserAgentBrowser'] === undefined) return false; + return true; +} + +export function SessionsGet200ResponseSessionsInnerFromJSON(json: any): SessionsGet200ResponseSessionsInner { + return SessionsGet200ResponseSessionsInnerFromJSONTyped(json, false); +} + +export function SessionsGet200ResponseSessionsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): SessionsGet200ResponseSessionsInner { + if (json == null) { + return json; + } + return { + + 'sessionId': json['session_id'], + 'clientId': json['client_id'], + 'clientName': json['client_name'], + 'clientDeveloperName': json['client_developer_name'], + 'clientDeveloperUrl': json['client_developer_url'], + 'clientDeveloperEmail': json['client_developer_email'], + 'scope': json['scope'], + 'scopeDescriptions': json['scope_descriptions'], + 'currentSession': json['current_session'], + 'impersonated': json['impersonated'], + 'impersonationNote': json['impersonation_note'], + 'firstIp': json['first_ip'], + 'firstContinent': json['first_continent'], + 'firstCountry': json['first_country'], + 'firstSubdivisions': json['first_subdivisions'], + 'firstCity': json['first_city'], + 'firstUserAgentHeader': json['first_user_agent_header'], + 'firstUserAgentOperatingSystem': json['first_user_agent_operating_system'], + 'firstUserAgentBrowser': json['first_user_agent_browser'], + 'lastIp': json['last_ip'], + 'lastContinent': json['last_continent'], + 'lastCountry': json['last_country'], + 'lastSubdivisions': json['last_subdivisions'], + 'lastCity': json['last_city'], + 'lastUserAgentHeader': json['last_user_agent_header'], + 'lastUserAgentOperatingSystem': json['last_user_agent_operating_system'], + 'lastUserAgentBrowser': json['last_user_agent_browser'], + }; +} + +export function SessionsGet200ResponseSessionsInnerToJSON(json: any): SessionsGet200ResponseSessionsInner { + return SessionsGet200ResponseSessionsInnerToJSONTyped(json, false); +} + +export function SessionsGet200ResponseSessionsInnerToJSONTyped(value?: SessionsGet200ResponseSessionsInner | null, ignoreDiscriminator: boolean = false): any { + if (value == null) { + return value; + } + + return { + + 'session_id': value['sessionId'], + 'client_id': value['clientId'], + 'client_name': value['clientName'], + 'client_developer_name': value['clientDeveloperName'], + 'client_developer_url': value['clientDeveloperUrl'], + 'client_developer_email': value['clientDeveloperEmail'], + 'scope': value['scope'], + 'scope_descriptions': value['scopeDescriptions'], + 'current_session': value['currentSession'], + 'impersonated': value['impersonated'], + 'impersonation_note': value['impersonationNote'], + 'first_ip': value['firstIp'], + 'first_continent': value['firstContinent'], + 'first_country': value['firstCountry'], + 'first_subdivisions': value['firstSubdivisions'], + 'first_city': value['firstCity'], + 'first_user_agent_header': value['firstUserAgentHeader'], + 'first_user_agent_operating_system': value['firstUserAgentOperatingSystem'], + 'first_user_agent_browser': value['firstUserAgentBrowser'], + 'last_ip': value['lastIp'], + 'last_continent': value['lastContinent'], + 'last_country': value['lastCountry'], + 'last_subdivisions': value['lastSubdivisions'], + 'last_city': value['lastCity'], + 'last_user_agent_header': value['lastUserAgentHeader'], + 'last_user_agent_operating_system': value['lastUserAgentOperatingSystem'], + 'last_user_agent_browser': value['lastUserAgentBrowser'], + }; +} + diff --git a/packages/oauth/router/src/client/models/index.ts b/packages/oauth/router/src/client/models/index.ts new file mode 100644 index 0000000..728f58d --- /dev/null +++ b/packages/oauth/router/src/client/models/index.ts @@ -0,0 +1,6 @@ +/* tslint:disable */ +/* eslint-disable */ +export * from './ErrorResponse'; +export * from './IracingProfileGet200Response'; +export * from './SessionsGet200Response'; +export * from './SessionsGet200ResponseSessionsInner'; diff --git a/packages/oauth/router/src/client/runtime.ts b/packages/oauth/router/src/client/runtime.ts new file mode 100644 index 0000000..7729199 --- /dev/null +++ b/packages/oauth/router/src/client/runtime.ts @@ -0,0 +1,432 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * iRacing OAuth API + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export const BASE_PATH = "https://oauth.iracing.com/oauth2".replace(/\/+$/, ""); + +export interface ConfigurationParameters { + basePath?: string; // override base path + fetchApi?: FetchAPI; // override for fetch implementation + middleware?: Middleware[]; // middleware to apply before/after fetch requests + queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings + username?: string; // parameter for basic security + password?: string; // parameter for basic security + apiKey?: string | Promise | ((name: string) => string | Promise); // parameter for apiKey security + accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string | Promise); // parameter for oauth2 security + headers?: HTTPHeaders; //header params we want to use on every request + credentials?: RequestCredentials; //value for the credentials param we want to use on each request +} + +export class Configuration { + constructor(private configuration: ConfigurationParameters = {}) {} + + set config(configuration: Configuration) { + this.configuration = configuration; + } + + get basePath(): string { + return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH; + } + + get fetchApi(): FetchAPI | undefined { + return this.configuration.fetchApi; + } + + get middleware(): Middleware[] { + return this.configuration.middleware || []; + } + + get queryParamsStringify(): (params: HTTPQuery) => string { + return this.configuration.queryParamsStringify || querystring; + } + + get username(): string | undefined { + return this.configuration.username; + } + + get password(): string | undefined { + return this.configuration.password; + } + + get apiKey(): ((name: string) => string | Promise) | undefined { + const apiKey = this.configuration.apiKey; + if (apiKey) { + return typeof apiKey === 'function' ? apiKey : () => apiKey; + } + return undefined; + } + + get accessToken(): ((name?: string, scopes?: string[]) => string | Promise) | undefined { + const accessToken = this.configuration.accessToken; + if (accessToken) { + return typeof accessToken === 'function' ? accessToken : async () => accessToken; + } + return undefined; + } + + get headers(): HTTPHeaders | undefined { + return this.configuration.headers; + } + + get credentials(): RequestCredentials | undefined { + return this.configuration.credentials; + } +} + +export const DefaultConfig = new Configuration(); + +/** + * This is the base class for all generated API classes. + */ +export class BaseAPI { + + private static readonly jsonRegex = new RegExp('^(:?application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(:?;.*)?$', 'i'); + private middleware: Middleware[]; + + constructor(protected configuration = DefaultConfig) { + this.middleware = configuration.middleware; + } + + withMiddleware(this: T, ...middlewares: Middleware[]) { + const next = this.clone(); + next.middleware = next.middleware.concat(...middlewares); + return next; + } + + withPreMiddleware(this: T, ...preMiddlewares: Array) { + const middlewares = preMiddlewares.map((pre) => ({ pre })); + return this.withMiddleware(...middlewares); + } + + withPostMiddleware(this: T, ...postMiddlewares: Array) { + const middlewares = postMiddlewares.map((post) => ({ post })); + return this.withMiddleware(...middlewares); + } + + /** + * Check if the given MIME is a JSON MIME. + * JSON MIME examples: + * application/json + * application/json; charset=UTF8 + * APPLICATION/JSON + * application/vnd.company+json + * @param mime - MIME (Multipurpose Internet Mail Extensions) + * @return True if the given MIME is JSON, false otherwise. + */ + protected isJsonMime(mime: string | null | undefined): boolean { + if (!mime) { + return false; + } + return BaseAPI.jsonRegex.test(mime); + } + + protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise { + const { url, init } = await this.createFetchParams(context, initOverrides); + const response = await this.fetchApi(url, init); + if (response && (response.status >= 200 && response.status < 300)) { + return response; + } + throw new ResponseError(response, 'Response returned an error code'); + } + + private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) { + let url = this.configuration.basePath + context.path; + if (context.query !== undefined && Object.keys(context.query).length !== 0) { + // only add the querystring to the URL if there are query parameters. + // this is done to avoid urls ending with a "?" character which buggy webservers + // do not handle correctly sometimes. + url += '?' + this.configuration.queryParamsStringify(context.query); + } + + const headers = Object.assign({}, this.configuration.headers, context.headers); + Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {}); + + const initOverrideFn = + typeof initOverrides === "function" + ? initOverrides + : async () => initOverrides; + + const initParams = { + method: context.method, + headers, + body: context.body, + credentials: this.configuration.credentials, + }; + + const overriddenInit: RequestInit = { + ...initParams, + ...(await initOverrideFn({ + init: initParams, + context, + })) + }; + + let body: any; + if (isFormData(overriddenInit.body) + || (overriddenInit.body instanceof URLSearchParams) + || isBlob(overriddenInit.body)) { + body = overriddenInit.body; + } else if (this.isJsonMime(headers['Content-Type'])) { + body = JSON.stringify(overriddenInit.body); + } else { + body = overriddenInit.body; + } + + const init: RequestInit = { + ...overriddenInit, + body + }; + + return { url, init }; + } + + private fetchApi = async (url: string, init: RequestInit) => { + let fetchParams = { url, init }; + for (const middleware of this.middleware) { + if (middleware.pre) { + fetchParams = await middleware.pre({ + fetch: this.fetchApi, + ...fetchParams, + }) || fetchParams; + } + } + let response: Response | undefined = undefined; + try { + response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init); + } catch (e) { + for (const middleware of this.middleware) { + if (middleware.onError) { + response = await middleware.onError({ + fetch: this.fetchApi, + url: fetchParams.url, + init: fetchParams.init, + error: e, + response: response ? response.clone() : undefined, + }) || response; + } + } + if (response === undefined) { + if (e instanceof Error) { + throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response'); + } else { + throw e; + } + } + } + for (const middleware of this.middleware) { + if (middleware.post) { + response = await middleware.post({ + fetch: this.fetchApi, + url: fetchParams.url, + init: fetchParams.init, + response: response.clone(), + }) || response; + } + } + return response; + } + + /** + * Create a shallow clone of `this` by constructing a new instance + * and then shallow cloning data members. + */ + private clone(this: T): T { + const constructor = this.constructor as any; + const next = new constructor(this.configuration); + next.middleware = this.middleware.slice(); + return next; + } +}; + +function isBlob(value: any): value is Blob { + return typeof Blob !== 'undefined' && value instanceof Blob; +} + +function isFormData(value: any): value is FormData { + return typeof FormData !== "undefined" && value instanceof FormData; +} + +export class ResponseError extends Error { + override name: "ResponseError" = "ResponseError"; + constructor(public response: Response, msg?: string) { + super(msg); + } +} + +export class FetchError extends Error { + override name: "FetchError" = "FetchError"; + constructor(public cause: Error, msg?: string) { + super(msg); + } +} + +export class RequiredError extends Error { + override name: "RequiredError" = "RequiredError"; + constructor(public field: string, msg?: string) { + super(msg); + } +} + +export const COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", +}; + +export type FetchAPI = WindowOrWorkerGlobalScope['fetch']; + +export type Json = any; +export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD'; +export type HTTPHeaders = { [key: string]: string }; +export type HTTPQuery = { [key: string]: string | number | null | boolean | Array | Set | HTTPQuery }; +export type HTTPBody = Json | FormData | URLSearchParams; +export type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody }; +export type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original'; + +export type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise + +export interface FetchParams { + url: string; + init: RequestInit; +} + +export interface RequestOpts { + path: string; + method: HTTPMethod; + headers: HTTPHeaders; + query?: HTTPQuery; + body?: HTTPBody; +} + +export function querystring(params: HTTPQuery, prefix: string = ''): string { + return Object.keys(params) + .map(key => querystringSingleKey(key, params[key], prefix)) + .filter(part => part.length > 0) + .join('&'); +} + +function querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array | Set | HTTPQuery, keyPrefix: string = ''): string { + const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key); + if (value instanceof Array) { + const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue))) + .join(`&${encodeURIComponent(fullKey)}=`); + return `${encodeURIComponent(fullKey)}=${multiValue}`; + } + if (value instanceof Set) { + const valueAsArray = Array.from(value); + return querystringSingleKey(key, valueAsArray, keyPrefix); + } + if (value instanceof Date) { + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`; + } + if (value instanceof Object) { + return querystring(value as HTTPQuery, fullKey); + } + return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`; +} + +export function exists(json: any, key: string) { + const value = json[key]; + return value !== null && value !== undefined; +} + +export function mapValues(data: any, fn: (item: any) => any) { + const result: { [key: string]: any } = {}; + for (const key of Object.keys(data)) { + result[key] = fn(data[key]); + } + return result; +} + +export function canConsumeForm(consumes: Consume[]): boolean { + for (const consume of consumes) { + if ('multipart/form-data' === consume.contentType) { + return true; + } + } + return false; +} + +export interface Consume { + contentType: string; +} + +export interface RequestContext { + fetch: FetchAPI; + url: string; + init: RequestInit; +} + +export interface ResponseContext { + fetch: FetchAPI; + url: string; + init: RequestInit; + response: Response; +} + +export interface ErrorContext { + fetch: FetchAPI; + url: string; + init: RequestInit; + error: unknown; + response?: Response; +} + +export interface Middleware { + pre?(context: RequestContext): Promise; + post?(context: ResponseContext): Promise; + onError?(context: ErrorContext): Promise; +} + +export interface ApiResponse { + raw: Response; + value(): Promise; +} + +export interface ResponseTransformer { + (json: any): T; +} + +export class JSONApiResponse { + constructor(public raw: Response, private transformer: ResponseTransformer = (jsonValue: any) => jsonValue) {} + + async value(): Promise { + return this.transformer(await this.raw.json()); + } +} + +export class VoidApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return undefined; + } +} + +export class BlobApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return await this.raw.blob(); + }; +} + +export class TextApiResponse { + constructor(public raw: Response) {} + + async value(): Promise { + return await this.raw.text(); + }; +} diff --git a/packages/oauth/router/src/index.ts b/packages/oauth/router/src/index.ts new file mode 100644 index 0000000..12f2e30 --- /dev/null +++ b/packages/oauth/router/src/index.ts @@ -0,0 +1,166 @@ +import { + OAuthClientOptions, + IRacingOAuthTokenResponse, + OAuthClient, +} from "@iracing-data/oauth-client"; +import { + createEndpoint as createEndpointFn, + createRouter as createRouterFn, + EndpointContext, + RouterConfig, +} from "better-call"; +import { toNodeHandler } from "better-call/node"; +import { + createIRacingOAuthClientMiddleware, + iRacingSessionHeaderMiddleware, + oauthServiceClientMiddleware, +} from "./middleware"; + +type CallbackResponseContext = Pick< + EndpointContext, + | "setHeader" + | "setStatus" + | "getHeader" + | "getCookie" + | "getSignedCookie" + | "setCookie" + | "setSignedCookie" + | "redirect" + | "error" + | "request" +>; + +interface CreateRouterWithClientOptions { + oauthClient: OAuthClient; +} + +interface CreateRouterWithClientOptionsOptions { + oauthConfig: OAuthClientOptions; +} + +export interface CreateRouterOptions + extends RouterConfig, + Partial, + Partial { + /** The path at which to mount the callback. This should match the redirect_uri path registered with iRacing. */ + callbackPath: string; + /** Called when a token is received from the iRacing OAuth service. */ + onCallback: ( + session: IRacingOAuthTokenResponse, + context: CallbackResponseContext + ) => void; + /** Called when a session is successfully invalidated. */ + onSignOut: (token: string, context: CallbackResponseContext) => void; +} + +export function createRouter({ + oauthConfig, + oauthClient, + callbackPath = "/oauth/iracing/callback", + onCallback, + onSignOut, + ...options +}: CreateRouterOptions) { + const oauthMiddleware = createIRacingOAuthClientMiddleware({ + oauthClient, + clientOptions: oauthConfig, + }); + + const createEndpoint = createEndpointFn.create({ + use: [oauthMiddleware], + }); + + return createRouterFn( + { + signIn: createEndpoint( + "/signin", + { + method: "GET", + }, + async ({ context: { oauth }, redirect }) => { + const { url } = await oauth.authorize(); + return redirect(url.toString()); + } + ), + signOut: createEndpoint( + "/signout", + { + method: "GET", + requireHeaders: true, + requireRequest: true, + use: [iRacingSessionHeaderMiddleware, oauthServiceClientMiddleware], + }, + async ({ + context: { oauthService, iracingSession }, + request, + getHeader, + getCookie, + getSignedCookie, + setHeader, + setStatus, + setCookie, + setSignedCookie, + redirect, + error, + }) => { + await oauthService.revokeCurrentPost(); + + if (iracingSession) { + onSignOut(iracingSession, { + request, + getHeader, + getCookie, + getSignedCookie, + setHeader, + setStatus, + setCookie, + setSignedCookie, + redirect, + error, + }); + } + } + ), + callback: createEndpoint( + callbackPath, + { + method: "GET", + requireRequest: true, + }, + async ({ + context: { oauth }, + query, + request, + getHeader, + getCookie, + getSignedCookie, + setHeader, + setStatus, + setCookie, + setSignedCookie, + redirect, + error, + }) => { + const session = await oauth.callback(new URLSearchParams(query)); + + onCallback(session, { + request, + getHeader, + getCookie, + getSignedCookie, + setHeader, + setStatus, + setCookie, + setSignedCookie, + redirect, + error, + }); + } + ), + }, + options + ); +} + +export { toNodeHandler }; +export default createRouter; diff --git a/packages/oauth/router/src/middleware.ts b/packages/oauth/router/src/middleware.ts new file mode 100644 index 0000000..09ac0bb --- /dev/null +++ b/packages/oauth/router/src/middleware.ts @@ -0,0 +1,61 @@ +import { OAuthClient, OAuthClientOptions } from "@iracing-data/oauth-client"; +import { createMiddleware } from "better-call"; +import { Configuration, DefaultApi } from "./client"; +import { assert } from "console"; + +interface CreateIRacingOAuthClientMiddlewareOptions { + oauthClient?: OAuthClient; + clientOptions?: OAuthClientOptions; +} + +export const createIRacingOAuthClientMiddleware = ( + options: CreateIRacingOAuthClientMiddlewareOptions +) => { + assert( + options.oauthClient || options.clientOptions, + "An OAuth client or options must be provided." + ); + + return createMiddleware(async () => { + return { + oauth: options.oauthClient || new OAuthClient(options.clientOptions!), + }; + }); +}; + +export const iRacingSessionHeaderMiddleware = createMiddleware( + { + requireHeaders: true, + metadata: { + openapi: { + parameters: [ + { + in: "header", + name: "X-IRACING-ACCESS-TOKEN", + schema: { + type: "string", + }, + required: true, + description: "The JWT token to sign the request with.", + }, + ], + }, + }, + }, + async ({ getHeader }) => ({ + iracingSession: getHeader("X-IRACING-ACCESS-TOKEN"), + }) +); + +export const oauthServiceClientMiddleware = createMiddleware( + { + use: [iRacingSessionHeaderMiddleware], + }, + async ({ context: { iracingSession } }) => ({ + oauthService: new DefaultApi( + new Configuration({ + accessToken: iracingSession || undefined, + }) + ), + }) +); diff --git a/packages/oauth/router/tsconfig.build.json b/packages/oauth/router/tsconfig.build.json new file mode 100644 index 0000000..4f8d6cf --- /dev/null +++ b/packages/oauth/router/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "../../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noUnusedLocals": false, + "module": "nodenext", + "moduleResolution": "nodenext", + "lib": ["es6", "dom"] + }, + "exclude": ["node_modules", "dist", "scripts"] +} diff --git a/packages/api/tsconfig.json b/packages/oauth/router/tsconfig.json similarity index 100% rename from packages/api/tsconfig.json rename to packages/oauth/router/tsconfig.json diff --git a/packages/oauth/schema/src/schema.ts b/packages/oauth/schema/src/schema.ts index 4e8089c..5d44302 100644 --- a/packages/oauth/schema/src/schema.ts +++ b/packages/oauth/schema/src/schema.ts @@ -10,6 +10,15 @@ export const IRacingOAuthClientIdSchema = z.string().meta({ description: "The client identifier issued during client registration.", }); +export const IRacingOAuthClientSecretSchema = z.string().optional().meta({ + description: "Required only if issued.", +}); + +export const IRacingOAuthScopesSchema = z.string().optional().meta({ + description: + "One or more scopes to request, if any, separated by whitespace.", +}); + // Headers export const IRacingOAuthRequestIdHeaderKey = "x-request-id"; @@ -53,24 +62,28 @@ export const IRacingOAuthAuthorizeParametersSchema = z.object({ description: "This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks.", }), - scope: z.string().optional().meta({ - description: - "One or more scopes to request, if any, separated by whitespace.", - }), + scope: IRacingOAuthScopesSchema, prompt: z.string().optional().meta({ description: "Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user.", }), }); +export const IRacingOAuthCllbackParametersSchema = z + .object({ + state: z.string(), + code: z.string(), + }) + .meta({ + description: + "Parameters are added to the query string of the `redirect_uri`.", + }); + export const IRacingOAuthTokenAuthorizationCodeGrantParametersSchema = z.object( { grant_type: z.literal("authorization_code"), client_id: IRacingOAuthClientIdSchema, - client_secret: z - .string() - .optional() - .meta({ description: "Required only if issued." }), + client_secret: IRacingOAuthClientSecretSchema, code: z .string() .meta({ description: "As returned to the redirect_uri of the client." }), @@ -87,29 +100,53 @@ export const IRacingOAuthTokenAuthorizationCodeGrantParametersSchema = z.object( export const IRacingOAuthTokenRefreshGrantParametersSchema = z.object({ grant_type: z.literal("authorization_code"), client_id: IRacingOAuthClientIdSchema, - client_secret: z - .string() - .optional() - .meta({ description: "Required only if issued." }), + client_secret: IRacingOAuthClientSecretSchema, refresh_token: z.string().meta({ description: "As returned in the `/token` response.", }), }); +export const IRacingOAuthPasswordLimitedGrantParametersSchema = z.object({ + grant_type: z.literal("password_limited"), + client_id: IRacingOAuthClientIdSchema, + client_secret: IRacingOAuthClientSecretSchema, + username: z.string().meta({ + description: "The email address or other issued identifier for a user.", + }), + password: z.string().meta({ + description: + "The password of the user. Password must be masked with the `username` before it is sent to the server.", + }), + scope: IRacingOAuthScopesSchema, +}); + export const IRacingOAuthTokenParametersSchema = z.discriminatedUnion( "grant_type", [ IRacingOAuthTokenAuthorizationCodeGrantParametersSchema, IRacingOAuthTokenRefreshGrantParametersSchema, + IRacingOAuthPasswordLimitedGrantParametersSchema, ] ); export const IRacingOAuthTokenResponseSchema = z.object({ - access_token: z.string(), + access_token: z.string().meta({ + description: + "The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion.", + }), token_type: z.literal("bearer"), - expires_in: z.number(), - refresh_token: z.string().optional(), - refresh_token_expires_in: z.number().optional(), + expires_in: z.number().meta({ + description: + "The number of seconds after which this access token will no longer be considered valid.", + }), + refresh_token: z.string().optional().meta({ + description: + "The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion.", + }), + refresh_token_expires_in: z.number().optional().meta({ + description: + "The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted.", + }), scope: z.string().trim(), }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 348f2a3..15a3505 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,15 @@ importers: specifier: ^7.27.0 version: 7.27.0 devDependencies: + '@iracing-data/api-schema-to-openapi': + specifier: workspace:* + version: link:packages/helpers/api-schema-to-openapi + '@iracing-data/oauth-schema-to-openapi': + specifier: workspace:* + version: link:packages/helpers/oauth-schema-to-openapi + '@openapitools/openapi-generator-cli': + specifier: ^2.25.0 + version: 2.25.0(@types/node@24.3.1) '@types/google-protobuf': specifier: ^3.15.12 version: 3.15.12 @@ -65,13 +74,13 @@ importers: dependencies: '@iracing-data/api-router': specifier: workspace:* - version: link:../../packages/api-router + version: link:../../packages/api/router '@iracing-data/oauth-client': specifier: workspace:* version: link:../../packages/oauth/client - axios: - specifier: ^1.7.9 - version: 1.13.2 + '@iracing-data/oauth-router': + specifier: workspace:* + version: link:../../packages/oauth/router better-call: specifier: ^1.0.24 version: 1.0.26 @@ -229,44 +238,38 @@ importers: specifier: workspace:* version: link:../../packages/iracing-telemetry-grpc-node - packages/api: - dependencies: - axios: - specifier: ^1.7.9 - version: 1.8.2 - axios-cookiejar-support: - specifier: ^6.0.4 - version: 6.0.4(axios@1.8.2)(tough-cookie@5.1.1) - tough-cookie: - specifier: ^5.1.1 - version: 5.1.1 - - packages/api-client: + packages/api/client/axios: dependencies: axios: - specifier: ^1.13.2 + specifier: ^1.6.1 version: 1.13.2 devDependencies: - '@iracing-data/api-schema-to-openapi': - specifier: workspace:* - version: link:../helpers/api-schema-to-openapi - '@openapitools/openapi-generator-cli': - specifier: ^2.25.0 - version: 2.25.0(@types/node@24.3.1) + '@types/node': + specifier: 12.11.5 - 12.20.42 + version: 12.20.42 + typescript: + specifier: ^4.0 || ^5.0 + version: 5.9.2 - packages/api-router: + packages/api/client/fetch: + devDependencies: + typescript: + specifier: ^4.0 || ^5.0 + version: 5.9.2 + + packages/api/router: dependencies: - '@iracing-data/api-client': + '@iracing-data/api-client-fetch': specifier: workspace:* - version: link:../api-client + version: link:../client/fetch '@iracing-data/api-schema': specifier: workspace:* - version: link:../api-schema + version: link:../schema better-call: specifier: ^1.0.26 version: 1.0.26 - packages/api-schema: + packages/api/schema: dependencies: zod: specifier: ^4.1.12 @@ -275,37 +278,6 @@ importers: specifier: ^5.4.3 version: 5.4.3(zod@4.1.12) - packages/cli: - dependencies: - '@iracing-data/api': - specifier: workspace:* - version: link:../api - '@iracing-data/sync-car-assets': - specifier: workspace:* - version: link:../helpers/sync-car-assets - '@iracing-data/sync-track-assets': - specifier: workspace:* - version: link:../helpers/sync-track-assets - commander: - specifier: 13.1.0 - version: 13.1.0 - inquirer: - specifier: ^12.4.1 - version: 12.4.2(@types/node@24.3.1) - lodash: - specifier: ^4.17.21 - version: 4.17.21 - tough-cookie: - specifier: ^5.1.1 - version: 5.1.1 - devDependencies: - '@commander-js/extra-typings': - specifier: ^13.1.0 - version: 13.1.0(commander@13.1.0) - typescript: - specifier: ^5.9.2 - version: 5.9.2 - packages/events/car-session-flag-events: dependencies: '@iracing-data/telemetry-types': @@ -411,7 +383,7 @@ importers: dependencies: '@iracing-data/api-schema': specifier: workspace:* - version: link:../../api-schema + version: link:../../api/schema commander: specifier: ^14.0.2 version: 14.0.2 @@ -441,6 +413,9 @@ importers: packages/helpers/oauth-schema-to-openapi: dependencies: + '@iracing-data/api-schema': + specifier: workspace:* + version: link:../../api/schema '@iracing-data/oauth-schema': specifier: workspace:* version: link:../../oauth/schema @@ -460,37 +435,25 @@ importers: packages/helpers/sync-car-assets: dependencies: - '@commander-js/extra-typings': - specifier: ^13.1.0 - version: 13.1.0(commander@14.0.0) - '@iracing-data/api-client': + '@iracing-data/api-client-fetch': specifier: workspace:* - version: link:../../api-client + version: link:../../api/client/fetch '@iracing-data/api-schema': specifier: workspace:* - version: link:../../api-schema - axios: - specifier: ^1.7.9 - version: 1.13.2 - axios-cookiejar-support: - specifier: ^6.0.4 - version: 6.0.4(axios@1.13.2)(tough-cookie@5.1.1) + version: link:../../api/schema commander: specifier: ^14.0.0 version: 14.0.0 dotenv: specifier: 16.4.7 version: 16.4.7 - tough-cookie: - specifier: ^5.1.1 - version: 5.1.1 devDependencies: + '@commander-js/extra-typings': + specifier: ^13.1.0 + version: 13.1.0(commander@14.0.0) esbuild: specifier: ^0.25.9 version: 0.25.9 - inquirer: - specifier: ^12.9.4 - version: 12.11.1(@types/node@24.3.1) packages/helpers/sync-telemetry-json-schema: dependencies: @@ -507,15 +470,12 @@ importers: packages/helpers/sync-track-assets: dependencies: - '@commander-js/extra-typings': - specifier: ^13.1.0 - version: 13.1.0(commander@14.0.0) - '@iracing-data/api-client': + '@iracing-data/api-client-fetch': specifier: workspace:* - version: link:../../api-client + version: link:../../api/client/fetch '@iracing-data/api-schema': specifier: workspace:* - version: link:../../api-schema + version: link:../../api/schema axios: specifier: ^1.7.9 version: 1.13.2 @@ -528,12 +488,13 @@ importers: dotenv: specifier: 16.4.7 version: 16.4.7 - inquirer: - specifier: ^12.4.1 - version: 12.4.2(@types/node@24.3.1) tough-cookie: specifier: ^5.1.1 version: 5.1.1 + devDependencies: + '@commander-js/extra-typings': + specifier: ^13.1.0 + version: 13.1.0(commander@14.0.0) packages/iracing-telemetry-grpc-node: dependencies: @@ -628,6 +589,9 @@ importers: packages/oauth/client: dependencies: + '@iracing-data/oauth-schema': + specifier: workspace:* + version: link:../schema oauth4webapi: specifier: ^3.7.0 version: 3.7.0 @@ -635,6 +599,19 @@ importers: specifier: ^4.0.17 version: 4.0.17 + packages/oauth/router: + dependencies: + '@iracing-data/oauth-client': + specifier: workspace:* + version: link:../client + better-call: + specifier: ^1.0.26 + version: 1.0.26 + devDependencies: + '@openapitools/openapi-generator-cli': + specifier: ^2.25.0 + version: 2.25.0(@types/node@24.3.1) + packages/oauth/schema: dependencies: zod: @@ -671,20 +648,13 @@ packages: resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} dev: true - /@commander-js/extra-typings@13.1.0(commander@13.1.0): - resolution: {integrity: sha512-q5P52BYb1hwVWE6dtID7VvuJWrlfbCv4klj7BjUUOqMz4jbSZD4C9fJ9lRjL2jnBGTg+gDDlaXN51rkWcLk4fg==} - peerDependencies: - commander: ~13.1.0 - dependencies: - commander: 13.1.0 - dev: true - /@commander-js/extra-typings@13.1.0(commander@14.0.0): resolution: {integrity: sha512-q5P52BYb1hwVWE6dtID7VvuJWrlfbCv4klj7BjUUOqMz4jbSZD4C9fJ9lRjL2jnBGTg+gDDlaXN51rkWcLk4fg==} peerDependencies: commander: ~13.1.0 dependencies: commander: 14.0.0 + dev: true /@commander-js/extra-typings@14.0.0(commander@14.0.2): resolution: {integrity: sha512-hIn0ncNaJRLkZrxBIp5AsW/eXEHNKYQBh0aPdoUqNgD+Io3NIykQqpKFyKcuasZhicGaEZJX/JBSIkZ4e5x8Dg==} @@ -1062,187 +1032,6 @@ packages: engines: {node: '>=18.18'} dev: true - /@inquirer/ansi@1.0.2: - resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} - engines: {node: '>=18'} - dev: true - - /@inquirer/checkbox@4.1.2(@types/node@24.3.1): - resolution: {integrity: sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - dev: false - - /@inquirer/checkbox@4.3.2(@types/node@24.3.1): - resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.3 - dev: true - - /@inquirer/confirm@5.1.21(@types/node@24.3.1): - resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - - /@inquirer/confirm@5.1.6(@types/node@24.3.1): - resolution: {integrity: sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: false - - /@inquirer/core@10.1.7(@types/node@24.3.1): - resolution: {integrity: sha512-AA9CQhlrt6ZgiSy6qoAigiA1izOa751ugX6ioSjqgJ+/Gd+tEN/TORk5sUYNjXuHWfW0r1n/a6ak4u/NqHHrtA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - dev: false - - /@inquirer/core@10.3.2(@types/node@24.3.1): - resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.3 - dev: true - - /@inquirer/editor@4.2.23(@types/node@24.3.1): - resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/external-editor': 1.0.3(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - - /@inquirer/editor@4.2.7(@types/node@24.3.1): - resolution: {integrity: sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - external-editor: 3.1.0 - dev: false - - /@inquirer/expand@4.0.23(@types/node@24.3.1): - resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.3 - dev: true - - /@inquirer/expand@4.0.9(@types/node@24.3.1): - resolution: {integrity: sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.2 - dev: false - - /@inquirer/external-editor@1.0.1(@types/node@24.3.1): - resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 24.3.1 - chardet: 2.1.0 - iconv-lite: 0.6.3 - dev: true - /@inquirer/external-editor@1.0.3(@types/node@24.3.1): resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} engines: {node: '>=18'} @@ -1257,266 +1046,6 @@ packages: iconv-lite: 0.7.0 dev: true - /@inquirer/figures@1.0.10: - resolution: {integrity: sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==} - engines: {node: '>=18'} - dev: false - - /@inquirer/figures@1.0.15: - resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} - engines: {node: '>=18'} - dev: true - - /@inquirer/input@4.1.6(@types/node@24.3.1): - resolution: {integrity: sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: false - - /@inquirer/input@4.3.1(@types/node@24.3.1): - resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - - /@inquirer/number@3.0.23(@types/node@24.3.1): - resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - - /@inquirer/number@3.0.9(@types/node@24.3.1): - resolution: {integrity: sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: false - - /@inquirer/password@4.0.23(@types/node@24.3.1): - resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - - /@inquirer/password@4.0.9(@types/node@24.3.1): - resolution: {integrity: sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - dev: false - - /@inquirer/prompts@7.10.1(@types/node@24.3.1): - resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@24.3.1) - '@inquirer/confirm': 5.1.21(@types/node@24.3.1) - '@inquirer/editor': 4.2.23(@types/node@24.3.1) - '@inquirer/expand': 4.0.23(@types/node@24.3.1) - '@inquirer/input': 4.3.1(@types/node@24.3.1) - '@inquirer/number': 3.0.23(@types/node@24.3.1) - '@inquirer/password': 4.0.23(@types/node@24.3.1) - '@inquirer/rawlist': 4.1.11(@types/node@24.3.1) - '@inquirer/search': 3.2.2(@types/node@24.3.1) - '@inquirer/select': 4.4.2(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: true - - /@inquirer/prompts@7.3.2(@types/node@24.3.1): - resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/checkbox': 4.1.2(@types/node@24.3.1) - '@inquirer/confirm': 5.1.6(@types/node@24.3.1) - '@inquirer/editor': 4.2.7(@types/node@24.3.1) - '@inquirer/expand': 4.0.9(@types/node@24.3.1) - '@inquirer/input': 4.1.6(@types/node@24.3.1) - '@inquirer/number': 3.0.9(@types/node@24.3.1) - '@inquirer/password': 4.0.9(@types/node@24.3.1) - '@inquirer/rawlist': 4.0.9(@types/node@24.3.1) - '@inquirer/search': 3.0.9(@types/node@24.3.1) - '@inquirer/select': 4.0.9(@types/node@24.3.1) - '@types/node': 24.3.1 - dev: false - - /@inquirer/rawlist@4.0.9(@types/node@24.3.1): - resolution: {integrity: sha512-+5t6ebehKqgoxV8fXwE49HkSF2Rc9ijNiVGEQZwvbMI61/Q5RcD+jWD6Gs1tKdz5lkI8GRBL31iO0HjGK1bv+A==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.2 - dev: false - - /@inquirer/rawlist@4.1.11(@types/node@24.3.1): - resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.3 - dev: true - - /@inquirer/search@3.0.9(@types/node@24.3.1): - resolution: {integrity: sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.2 - dev: false - - /@inquirer/search@3.2.2(@types/node@24.3.1): - resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.3 - dev: true - - /@inquirer/select@4.0.9(@types/node@24.3.1): - resolution: {integrity: sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - dev: false - - /@inquirer/select@4.4.2(@types/node@24.3.1): - resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - yoctocolors-cjs: 2.1.3 - dev: true - - /@inquirer/type@3.0.10(@types/node@24.3.1): - resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 24.3.1 - dev: true - - /@inquirer/type@3.0.4(@types/node@24.3.1): - resolution: {integrity: sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@types/node': 24.3.1 - dev: false - /@isaacs/balanced-match@4.0.1: resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -1870,6 +1399,10 @@ packages: resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} dev: false + /@types/node@12.20.42: + resolution: {integrity: sha512-aI3/oo5DzyiI5R/xAhxxRzfZlWlsbbqdgxfTPkqu/Zt+23GXiJvMCyPJT4+xKSXOnLqoL8jJYMLTwvK2M3a5hw==} + dev: true + /@types/node@24.10.0: resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==} dependencies: @@ -1879,6 +1412,7 @@ packages: resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==} dependencies: undici-types: 7.10.0 + dev: true /@types/qs@6.14.0: resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} @@ -2124,6 +1658,7 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.21.3 + dev: true /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -2275,20 +1810,6 @@ packages: - undici dev: false - /axios-cookiejar-support@6.0.4(axios@1.8.2)(tough-cookie@5.1.1): - resolution: {integrity: sha512-4Bzj+l63eGwnWDBFdJHeGS6Ij3ytpyqvo//ocsb5kCLN/rKthzk27Afh2iSkZtuudOBkHUWWIcyCb4GKhXqovQ==} - engines: {node: '>=20.0.0'} - peerDependencies: - axios: '>=0.20.0' - tough-cookie: '>=4.0.0' - dependencies: - axios: 1.8.2 - http-cookie-agent: 7.0.2(tough-cookie@5.1.1) - tough-cookie: 5.1.1 - transitivePeerDependencies: - - undici - dev: false - /axios@1.12.2: resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} dependencies: @@ -2477,14 +1998,6 @@ packages: supports-color: 7.2.0 dev: true - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: false - - /chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} - dev: true - /chardet@2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} dev: true @@ -2506,10 +2019,6 @@ packages: engines: {node: '>= 10'} dev: true - /cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2549,10 +2058,6 @@ packages: dependencies: delayed-stream: 1.0.0 - /commander@13.1.0: - resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} - engines: {node: '>=18'} - /commander@14.0.0: resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} engines: {node: '>=20'} @@ -3384,15 +2889,6 @@ packages: sort-keys-length: 1.0.1 dev: true - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: false - /fast-copy@3.0.2: resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} dev: false @@ -3924,18 +3420,12 @@ packages: - supports-color dev: true - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: false /iconv-lite@0.7.0: resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} @@ -3969,49 +3459,11 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /inquirer@12.11.1(@types/node@24.3.1): - resolution: {integrity: sha512-9VF7mrY+3OmsAfjH3yKz/pLbJ5z22E23hENKw3/LNSaA/sAt3v49bDRY+Ygct1xwuKT+U+cBfTzjCPySna69Qw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@24.3.1) - '@inquirer/prompts': 7.10.1(@types/node@24.3.1) - '@inquirer/type': 3.0.10(@types/node@24.3.1) - '@types/node': 24.3.1 - mute-stream: 2.0.0 - run-async: 4.0.6 - rxjs: 7.8.2 - dev: true - - /inquirer@12.4.2(@types/node@24.3.1): - resolution: {integrity: sha512-reyjHcwyK2LObXgTJH4T1Dpfhwu88LNPTZmg/KenmTsy3T8lN/kZT8Oo7UwwkB9q8+ss2qjjN7GV8oFAfyz9Xg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@inquirer/core': 10.1.7(@types/node@24.3.1) - '@inquirer/prompts': 7.3.2(@types/node@24.3.1) - '@inquirer/type': 3.0.4(@types/node@24.3.1) - '@types/node': 24.3.1 - ansi-escapes: 4.3.2 - mute-stream: 2.0.0 - run-async: 3.0.0 - rxjs: 7.8.1 - dev: false - /inquirer@8.2.7(@types/node@24.3.1): resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} engines: {node: '>=12.0.0'} dependencies: - '@inquirer/external-editor': 1.0.1(@types/node@24.3.1) + '@inquirer/external-editor': 1.0.3(@types/node@24.3.1) ansi-escapes: 4.3.2 chalk: 4.1.2 cli-cursor: 3.1.0 @@ -4622,10 +4074,6 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -4771,11 +4219,6 @@ packages: wcwidth: 1.0.1 dev: true - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: false - /own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} @@ -5261,28 +4704,12 @@ packages: engines: {node: '>=0.12.0'} dev: true - /run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} - dev: false - - /run-async@4.0.6: - resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} - engines: {node: '>=0.12.0'} - dev: true - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.8.1 - dev: false - /rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} dependencies: @@ -5488,6 +4915,7 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + dev: true /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} @@ -5746,13 +5174,6 @@ packages: tldts-core: 6.1.77 dev: false - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: false - /to-buffer@1.1.1: resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} dev: true @@ -5860,6 +5281,7 @@ packages: /tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} requiresBuild: true + dev: true /tsx@4.20.4: resolution: {integrity: sha512-yyxBKfORQ7LuRt/BQKBXrpcq59ZvSW0XxwfjAt3w2/8PmdxaFzijtMhTawprSHhpzeM5BgU2hXHG3lklIERZXg==} @@ -5893,6 +5315,7 @@ packages: /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + dev: true /type-is@2.0.1: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} @@ -5985,6 +5408,7 @@ packages: /undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + dev: true /undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -6120,6 +5544,7 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -6197,16 +5622,6 @@ packages: engines: {node: '>=10'} dev: true - /yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} - engines: {node: '>=18'} - dev: false - - /yoctocolors-cjs@2.1.3: - resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} - engines: {node: '>=18'} - dev: true - /zod-openapi@5.4.3(zod@4.1.12): resolution: {integrity: sha512-6kJ/gJdvHZtuxjYHoMtkl2PixCwRuZ/s79dVkEr7arHvZGXfx7Cvh53X3HfJ5h9FzGelXOXlnyjwfX0sKEPByw==} engines: {node: '>=20'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6e226ed..36c3c5a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,8 @@ packages: - "examples/*" - "packages/*" + - "packages/api/*" + - "packages/api/client/*" - "packages/events/*" - "packages/helpers/*" - "packages/oauth/*" From d9cab61e92762a508906dbd1f4eba444f20f0b87 Mon Sep 17 00:00:00 2001 From: Justin Makaila <1638996+justinmakaila@users.noreply.github.com> Date: Mon, 17 Nov 2025 14:27:08 -0500 Subject: [PATCH 28/28] Add apps/ for cli tools and applications; clean up the sync-*-assets packages to only concern themselves with the opinionated downloading and storage of assets --- {examples => apps}/race-events/.env.template | 0 {examples => apps}/race-events/README.md | 0 {examples => apps}/race-events/package.json | 1 + .../scripts/build-executable-macos.sh | 0 .../scripts/build-executable-windows.sh | 0 .../race-events/sea-config.json | 0 .../race-events/src/PaceOrderFormatter.ts | 0 {examples => apps}/race-events/src/index.ts | 0 {examples => apps}/race-events/src/logging.ts | 0 {examples => apps}/race-events/tsconfig.json | 0 apps/sync-car-assets-cli/.env.template | 5 + apps/sync-car-assets-cli/package.json | 28 + .../scripts/build-executable-macos.sh | 0 .../scripts/build-executable-windows.sh | 0 .../sync-car-assets-cli}/sea-config.json | 2 +- .../src/generated/openapi.ts | 432 ++++++++++++ .../sync-car-assets-cli/src/index.ts | 60 +- apps/sync-car-assets-cli/tsconfig.build.json | 19 + apps/sync-car-assets-cli/tsconfig.json | 9 + apps/sync-track-assets-cli/.env.template | 5 + apps/sync-track-assets-cli/package.json | 28 + .../scripts/build-executable-macos.sh | 16 + .../scripts/build-executable-windows.sh | 15 + apps/sync-track-assets-cli/sea-config.json | 5 + .../src/generated/openapi.ts | 432 ++++++++++++ .../sync-track-assets-cli/src/index.ts | 54 +- .../sync-track-assets-cli/tsconfig.build.json | 19 + apps/sync-track-assets-cli/tsconfig.json | 9 + openapi/iracing-oauth.json | 2 +- package.json | 6 +- .../oauth-schema-to-openapi/src/index.ts | 21 +- packages/helpers/sync-car-assets/package.json | 24 +- packages/helpers/sync-car-assets/src/index.ts | 11 +- packages/helpers/sync-car-assets/src/util.ts | 35 +- .../helpers/sync-track-assets/package.json | 15 +- .../helpers/sync-track-assets/src/index.ts | 20 +- .../helpers/sync-track-assets/src/util.ts | 35 +- packages/oauth/client/package.json | 2 +- packages/oauth/client/src/client.ts | 31 +- packages/oauth/client/src/schema/oauth.ts | 34 +- packages/oauth/client/src/utils.ts | 12 + packages/oauth/schema/src/schema.ts | 160 +++-- pnpm-lock.yaml | 651 +++++++++++++++--- pnpm-workspace.yaml | 1 + tsconfig.json | 18 +- 45 files changed, 1843 insertions(+), 374 deletions(-) rename {examples => apps}/race-events/.env.template (100%) rename {examples => apps}/race-events/README.md (100%) rename {examples => apps}/race-events/package.json (93%) rename {examples => apps}/race-events/scripts/build-executable-macos.sh (100%) rename {examples => apps}/race-events/scripts/build-executable-windows.sh (100%) rename {examples => apps}/race-events/sea-config.json (100%) rename {examples => apps}/race-events/src/PaceOrderFormatter.ts (100%) rename {examples => apps}/race-events/src/index.ts (100%) rename {examples => apps}/race-events/src/logging.ts (100%) rename {examples => apps}/race-events/tsconfig.json (100%) create mode 100644 apps/sync-car-assets-cli/.env.template create mode 100644 apps/sync-car-assets-cli/package.json rename {packages/helpers/sync-car-assets => apps/sync-car-assets-cli}/scripts/build-executable-macos.sh (100%) rename {packages/helpers/sync-car-assets => apps/sync-car-assets-cli}/scripts/build-executable-windows.sh (100%) rename {packages/helpers/sync-car-assets => apps/sync-car-assets-cli}/sea-config.json (74%) create mode 100644 apps/sync-car-assets-cli/src/generated/openapi.ts rename packages/helpers/sync-car-assets/src/cli.ts => apps/sync-car-assets-cli/src/index.ts (50%) create mode 100644 apps/sync-car-assets-cli/tsconfig.build.json create mode 100644 apps/sync-car-assets-cli/tsconfig.json create mode 100644 apps/sync-track-assets-cli/.env.template create mode 100644 apps/sync-track-assets-cli/package.json create mode 100755 apps/sync-track-assets-cli/scripts/build-executable-macos.sh create mode 100644 apps/sync-track-assets-cli/scripts/build-executable-windows.sh create mode 100644 apps/sync-track-assets-cli/sea-config.json create mode 100644 apps/sync-track-assets-cli/src/generated/openapi.ts rename packages/helpers/sync-track-assets/src/cli.ts => apps/sync-track-assets-cli/src/index.ts (59%) create mode 100644 apps/sync-track-assets-cli/tsconfig.build.json create mode 100644 apps/sync-track-assets-cli/tsconfig.json diff --git a/examples/race-events/.env.template b/apps/race-events/.env.template similarity index 100% rename from examples/race-events/.env.template rename to apps/race-events/.env.template diff --git a/examples/race-events/README.md b/apps/race-events/README.md similarity index 100% rename from examples/race-events/README.md rename to apps/race-events/README.md diff --git a/examples/race-events/package.json b/apps/race-events/package.json similarity index 93% rename from examples/race-events/package.json rename to apps/race-events/package.json index c4e4e6d..86b2906 100644 --- a/examples/race-events/package.json +++ b/apps/race-events/package.json @@ -6,6 +6,7 @@ "type": "module", "scripts": { "build": "tsc", + "build:executable": "pnpm bundle && pnpm --parallel --stream '/^build:executable:.+$/'", "build:executable:macos": "./scripts/build-executable-macos.sh", "build:executable:windows": "./scripts/build-executable-windows.sh", "bundle": "esbuild ./src/index.ts --bundle --platform=node --outfile=build/index.cjs --format=cjs", diff --git a/examples/race-events/scripts/build-executable-macos.sh b/apps/race-events/scripts/build-executable-macos.sh similarity index 100% rename from examples/race-events/scripts/build-executable-macos.sh rename to apps/race-events/scripts/build-executable-macos.sh diff --git a/examples/race-events/scripts/build-executable-windows.sh b/apps/race-events/scripts/build-executable-windows.sh similarity index 100% rename from examples/race-events/scripts/build-executable-windows.sh rename to apps/race-events/scripts/build-executable-windows.sh diff --git a/examples/race-events/sea-config.json b/apps/race-events/sea-config.json similarity index 100% rename from examples/race-events/sea-config.json rename to apps/race-events/sea-config.json diff --git a/examples/race-events/src/PaceOrderFormatter.ts b/apps/race-events/src/PaceOrderFormatter.ts similarity index 100% rename from examples/race-events/src/PaceOrderFormatter.ts rename to apps/race-events/src/PaceOrderFormatter.ts diff --git a/examples/race-events/src/index.ts b/apps/race-events/src/index.ts similarity index 100% rename from examples/race-events/src/index.ts rename to apps/race-events/src/index.ts diff --git a/examples/race-events/src/logging.ts b/apps/race-events/src/logging.ts similarity index 100% rename from examples/race-events/src/logging.ts rename to apps/race-events/src/logging.ts diff --git a/examples/race-events/tsconfig.json b/apps/race-events/tsconfig.json similarity index 100% rename from examples/race-events/tsconfig.json rename to apps/race-events/tsconfig.json diff --git a/apps/sync-car-assets-cli/.env.template b/apps/sync-car-assets-cli/.env.template new file mode 100644 index 0000000..312491c --- /dev/null +++ b/apps/sync-car-assets-cli/.env.template @@ -0,0 +1,5 @@ +IRACING_AUTH_CLIENT="" +IRACING_AUTH_SECRET="" +IRACING_AUTH_USERNAME="" +IRACING_AUTH_PASSWORD="" +IRACING_AUTH_SCOPE="iracing.auth iracing.profile" \ No newline at end of file diff --git a/apps/sync-car-assets-cli/package.json b/apps/sync-car-assets-cli/package.json new file mode 100644 index 0000000..b955289 --- /dev/null +++ b/apps/sync-car-assets-cli/package.json @@ -0,0 +1,28 @@ +{ + "name": "@iracing-data/sync-car-assets-cli", + "main": "dist/index.js", + "bin": { + "sync-iracing-car-assets": "dist/index.js" + }, + "scripts": { + "build": "tsc --build tsconfig.build.json", + "build:executable": "pnpm --parallel --stream '/^build:executable:.+$/'", + "build:executable:macos": "./scripts/build-executable-macos.sh", + "build:executable:windows": "./scripts/build-executable-windows.sh", + "bundle": "esbuild src/index.ts --bundle --platform=node --tsconfig=tsconfig.build.json --outfile=build/index.cjs --format=cjs", + "codegen": "pnpm codegen:openapi:types", + "codegen:openapi:types": "openapi-typescript ../../openapi/iracing-oauth.json -o src/generated/openapi.ts", + "test:ts": "tsc --noEmit" + }, + "dependencies": { + "@iracing-data/api-client-fetch": "workspace:*", + "@iracing-data/sync-car-assets": "workspace:*", + "commander": "^14.0.2", + "openapi-fetch": "^0.15.0" + }, + "devDependencies": { + "@commander-js/extra-typings": "^14.0.0", + "esbuild": "^0.27.0", + "openapi-typescript": "7.10.1" + } +} \ No newline at end of file diff --git a/packages/helpers/sync-car-assets/scripts/build-executable-macos.sh b/apps/sync-car-assets-cli/scripts/build-executable-macos.sh similarity index 100% rename from packages/helpers/sync-car-assets/scripts/build-executable-macos.sh rename to apps/sync-car-assets-cli/scripts/build-executable-macos.sh diff --git a/packages/helpers/sync-car-assets/scripts/build-executable-windows.sh b/apps/sync-car-assets-cli/scripts/build-executable-windows.sh similarity index 100% rename from packages/helpers/sync-car-assets/scripts/build-executable-windows.sh rename to apps/sync-car-assets-cli/scripts/build-executable-windows.sh diff --git a/packages/helpers/sync-car-assets/sea-config.json b/apps/sync-car-assets-cli/sea-config.json similarity index 74% rename from packages/helpers/sync-car-assets/sea-config.json rename to apps/sync-car-assets-cli/sea-config.json index 651f857..ff27b42 100644 --- a/packages/helpers/sync-car-assets/sea-config.json +++ b/apps/sync-car-assets-cli/sea-config.json @@ -1,5 +1,5 @@ { - "main": "build/cli.cjs", + "main": "build/index.cjs", "output": "build/sync-car-assets.blob", "disableExperimentalSEAWarning": true } \ No newline at end of file diff --git a/apps/sync-car-assets-cli/src/generated/openapi.ts b/apps/sync-car-assets-cli/src/generated/openapi.ts new file mode 100644 index 0000000..8618c73 --- /dev/null +++ b/apps/sync-car-assets-cli/src/generated/openapi.ts @@ -0,0 +1,432 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/iracing/profile": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getProfile"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sessions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getSessions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/revoke/current": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["revokeCurrent"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/revoke/sessions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["revokeSessions"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/revoke/client": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["revokeClient"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/authorize": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["authorize"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/token": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["exchangeToken"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + tokenGrantParameters: + | components["schemas"]["authorizationCodeGrant"] + | components["schemas"]["refreshTokenGrant"] + | components["schemas"]["passwordLimitedGrant"]; + authorizationCodeGrant: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + grant_type: "authorization_code"; + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description The client secret issued during registration. */ + client_secret?: string; + /** @description As returned to the redirect_uri of the client. */ + code: string; + /** @description The same redirect_uri used to `/authorize`. */ + redirect_uri: string; + /** @description The PKCE code verifier which is only required if a code_challenge was used to `/authorize``. */ + code_verifier?: string; + }; + refreshTokenGrant: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + grant_type: "refresh_token"; + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description The client secret issued during registration. */ + client_secret?: string; + /** @description As returned in the `/token` response. */ + refresh_token: string; + }; + passwordLimitedGrant: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + grant_type: "password_limited"; + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description The client secret issued during registration. */ + client_secret: string; + /** @description The email address or other issued identifier for a user. */ + username: string; + /** @description The password of the user. Password must be masked with the `username` before it is sent to the server. */ + password: string; + /** @description One or more scopes to request, if any, separated by whitespace. */ + scope?: string; + }; + tokenGrantResponse: { + /** @description The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion. */ + access_token: string; + /** @constant */ + token_type: "bearer"; + /** @description The number of seconds after which this access token will no longer be considered valid. */ + expires_in: number; + /** @description The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion. */ + refresh_token?: string; + /** @description The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted. */ + refresh_token_expires_in?: number; + /** @description One or more scopes to request, if any, separated by whitespace. */ + scope?: string; + }; + }; + responses: { + /** @description Session(s) were successfully revoked. */ + SessionsRevoked: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content?: never; + }; + /** @description Access token is missing or invalid. */ + Unauthorized: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + status: number; + status_reason: string; + error: string; + error_description: string; + error_uri: string; + state?: string; + }; + }; + }; + }; + parameters: never; + requestBodies: never; + headers: { + /** @description Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues. */ + "x-request-id": string; + }; + pathItems: never; +} +export type $defs = Record; +export interface operations { + getProfile: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Success */ + 200: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": { + iracing_name: string; + iracing_cust_id: number; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + }; + }; + getSessions: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Success */ + 200: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": { + sessions: { + /** @description A session identifier. This value is considered opaque and its format may change without warning at our discretion. */ + session_id: string; + /** @description A client identifier. */ + client_id: string; + /** @description The name of the client as selected during client registration. */ + client_name: string; + client_developer_name: string | null; + client_developer_url: string | null; + client_developer_email: string | null; + scope: string | null; + scope_descriptions: string | null; + current_session: boolean; + impersonated: boolean; + impersonation_note: string | null; + first_ip: string | null; + first_continent: string | null; + first_country: string | null; + first_subdivisions: string | null; + first_city: string | null; + first_user_agent_header: string | null; + first_user_agent_operating_system: string | null; + first_user_agent_browser: string | null; + last_ip: string | null; + last_continent: string | null; + last_country: string | null; + last_subdivisions: string | null; + last_city: string | null; + last_user_agent_header: string | null; + last_user_agent_operating_system: string | null; + last_user_agent_browser: string | null; + }[]; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + }; + }; + revokeCurrent: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + forgetBrowser?: boolean; + }; + }; + }; + responses: { + 200: components["responses"]["SessionsRevoked"]; + 401: components["responses"]["Unauthorized"]; + }; + }; + revokeSessions: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + sessionIds: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["SessionsRevoked"]; + 401: components["responses"]["Unauthorized"]; + }; + }; + revokeClient: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: components["responses"]["SessionsRevoked"]; + 401: components["responses"]["Unauthorized"]; + }; + }; + authorize: { + parameters: { + query: { + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description A redirect URI registered to the client, which must match exactly. */ + redirect_uri: string; + /** @description The only valid value for this is code. */ + response_type: "code"; + /** @description A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless. */ + code_challenge?: string; + /** @description The PKCE code challenge method. Either S256 (recommended) or plain. */ + code_challenge_method?: "plain" | "S256"; + /** @description This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks. */ + state?: string; + scope?: string; + /** @description Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user. */ + prompt?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Redirect back to the provided redirect_uri */ + 302: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + exchangeToken: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["tokenGrantParameters"]; + }; + }; + responses: { + /** @description Success */ + 200: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["tokenGrantResponse"]; + }; + }; + /** @description Failure */ + 400: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": { + status: number; + status_reason: string; + error: string; + error_description: string; + error_uri: string; + state?: string; + }; + }; + }; + }; + }; +} diff --git a/packages/helpers/sync-car-assets/src/cli.ts b/apps/sync-car-assets-cli/src/index.ts similarity index 50% rename from packages/helpers/sync-car-assets/src/cli.ts rename to apps/sync-car-assets-cli/src/index.ts index 1ec4ef2..e3ca702 100644 --- a/packages/helpers/sync-car-assets/src/cli.ts +++ b/apps/sync-car-assets-cli/src/index.ts @@ -1,20 +1,16 @@ #!/usr/bin/env node + import crypto from "node:crypto"; import { Command } from "@commander-js/extra-typings"; -import { CarApi, AuthApi } from "@iracing-data/api-client"; -import axios from "axios"; -import { wrapper } from "axios-cookiejar-support"; -import { CookieJar } from "tough-cookie"; +import { CarApi, Configuration } from "@iracing-data/api-client-fetch"; +import { syncCarAssets } from "@iracing-data/sync-car-assets"; import * as dotenv from "dotenv"; -import { syncCarAssets } from "./index.js"; -import { getIRacingCredentials } from "./util.js"; +import createClient from "openapi-fetch"; +import type { paths } from "./generated/openapi"; dotenv.config(); -/** - * Compute the Base64‑encoded SHA‑256 hash of (password + email.toLowerCase()). - */ -export async function hashPassword(email: string, password: string) { +async function hashPassword(email: string, password: string) { return crypto .createHash("sha256") .update(password + email.toLowerCase()) @@ -31,29 +27,29 @@ const program = new Command("sync-iracing-car-assets") .action(async (_, command) => { console.log("Downloading car assets..."); - // Create an axios instance capable of handling cookies. - const client = wrapper( - axios.create({ - baseURL: "https://members-ng.iracing.com/", - withCredentials: true, - jar: new CookieJar(), - headers: { - "Content-Type": "application/json", - }, - }) - ); + const username = process.env.IRACING_AUTH_USERNAME!; + const password = process.env.IRACING_AUTH_PASSWORD!; - // Use the axios instance to authenticate - const auth = new AuthApi(undefined, undefined, client); - const { username, password } = await getIRacingCredentials(); - const hashedPassword = await hashPassword(username, password); - await auth.postAuth({ - post_auth_request: { - email: username, - password: hashedPassword, + /** + * Authorize the consumer with a password limited grant from iRacing OAuth services + */ + const client = createClient({ + baseUrl: "https://oauth.iracing.com/oauth2", + }); + + const session = await client.POST("/token", { + body: { + grant_type: "password_limited", + client_id: process.env.IRACING_AUTH_CLIENT!, + client_secret: process.env.IRACING_AUTH_SECRET!, + username: username, + password: await hashPassword(username, password), + scope: process.env.IRACING_AUTH_SCOPE!, }, }); + // TODO: Store the session somewhere? + const { outDir, writeFullAssets, @@ -70,7 +66,11 @@ const program = new Command("sync-iracing-car-assets") skipCarAssets, skipCarInfo, }, - new CarApi(undefined, undefined, client) + new CarApi( + new Configuration({ + accessToken: session.data?.access_token, + }) + ) ); console.log("Done!"); diff --git a/apps/sync-car-assets-cli/tsconfig.build.json b/apps/sync-car-assets-cli/tsconfig.build.json new file mode 100644 index 0000000..231b582 --- /dev/null +++ b/apps/sync-car-assets-cli/tsconfig.build.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "module": "nodenext", + "moduleResolution": "nodenext", + "noUnusedLocals": false, + "declarationMap": false, + "sourceMap": false, + "isolatedModules": false, + "paths": { + "@/*": ["./src/*"] + }, + "lib": ["es6"] + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/apps/sync-car-assets-cli/tsconfig.json b/apps/sync-car-assets-cli/tsconfig.json new file mode 100644 index 0000000..5455dae --- /dev/null +++ b/apps/sync-car-assets-cli/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/apps/sync-track-assets-cli/.env.template b/apps/sync-track-assets-cli/.env.template new file mode 100644 index 0000000..312491c --- /dev/null +++ b/apps/sync-track-assets-cli/.env.template @@ -0,0 +1,5 @@ +IRACING_AUTH_CLIENT="" +IRACING_AUTH_SECRET="" +IRACING_AUTH_USERNAME="" +IRACING_AUTH_PASSWORD="" +IRACING_AUTH_SCOPE="iracing.auth iracing.profile" \ No newline at end of file diff --git a/apps/sync-track-assets-cli/package.json b/apps/sync-track-assets-cli/package.json new file mode 100644 index 0000000..db3512a --- /dev/null +++ b/apps/sync-track-assets-cli/package.json @@ -0,0 +1,28 @@ +{ + "name": "@iracing-data/sync-track-assets-cli", + "main": "dist/index.js", + "bin": { + "sync-iracing-track-assets": "dist/index.js" + }, + "scripts": { + "build": "tsc --build tsconfig.build.json", + "build:executable": "pnpm bundle && pnpm --parallel --stream '/^build:executable:.+$/'", + "build:executable:macos": "./scripts/build-executable-macos.sh", + "build:executable:windows": "./scripts/build-executable-windows.sh", + "bundle": "esbuild src/index.ts --bundle --platform=node --tsconfig=tsconfig.build.json --outfile=build/index.cjs --format=cjs", + "codegen": "pnpm codegen:openapi:types", + "codegen:openapi:types": "openapi-typescript ../../openapi/iracing-oauth.json -o src/generated/openapi.ts", + "test:ts": "tsc --noEmit" + }, + "dependencies": { + "@iracing-data/api-client-fetch": "workspace:*", + "@iracing-data/sync-track-assets": "workspace:*", + "commander": "^14.0.2", + "openapi-fetch": "^0.15.0" + }, + "devDependencies": { + "@commander-js/extra-typings": "^14.0.0", + "esbuild": "^0.27.0", + "openapi-typescript": "7.10.1" + } +} \ No newline at end of file diff --git a/apps/sync-track-assets-cli/scripts/build-executable-macos.sh b/apps/sync-track-assets-cli/scripts/build-executable-macos.sh new file mode 100755 index 0000000..421fa3d --- /dev/null +++ b/apps/sync-track-assets-cli/scripts/build-executable-macos.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +echo "Building MacOS executable" + +mkdir -p build/macos +node --experimental-sea-config sea-config.json + +cp $(command -v node) build/macos/sync-track-assets + +codesign --remove-signature build/macos/sync-track-assets + +pnpm dlx postject build/macos/sync-track-assets NODE_SEA_BLOB build/sync-track-assets.blob \ + --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 \ + --macho-segment-name NODE_SEA + +codesign --sign - build/macos/sync-track-assets \ No newline at end of file diff --git a/apps/sync-track-assets-cli/scripts/build-executable-windows.sh b/apps/sync-track-assets-cli/scripts/build-executable-windows.sh new file mode 100644 index 0000000..fa87918 --- /dev/null +++ b/apps/sync-track-assets-cli/scripts/build-executable-windows.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +echo "Building Windows executable" + +mkdir -p build/windows +node --experimental-sea-config sea-config.json + +node -e "require('fs').copyFileSync(process.execPath, 'build/windows/sync-track-assets.exe')" + +signtool remove /s build/windows/sync-track-assets.exe + +pnpm dlx postject build/windows/sync-track-assets.exe NODE_SEA_BLOB build/sync-track-assets.blob \ + --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 + +signtool sign /fd SHA256 build/windows/sync-track-assets.exe \ No newline at end of file diff --git a/apps/sync-track-assets-cli/sea-config.json b/apps/sync-track-assets-cli/sea-config.json new file mode 100644 index 0000000..c539504 --- /dev/null +++ b/apps/sync-track-assets-cli/sea-config.json @@ -0,0 +1,5 @@ +{ + "main": "build/index.cjs", + "output": "build/sync-track-assets.blob", + "disableExperimentalSEAWarning": true +} \ No newline at end of file diff --git a/apps/sync-track-assets-cli/src/generated/openapi.ts b/apps/sync-track-assets-cli/src/generated/openapi.ts new file mode 100644 index 0000000..8618c73 --- /dev/null +++ b/apps/sync-track-assets-cli/src/generated/openapi.ts @@ -0,0 +1,432 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/iracing/profile": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getProfile"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sessions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["getSessions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/revoke/current": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["revokeCurrent"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/revoke/sessions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["revokeSessions"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/revoke/client": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["revokeClient"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/authorize": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["authorize"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/token": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["exchangeToken"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + tokenGrantParameters: + | components["schemas"]["authorizationCodeGrant"] + | components["schemas"]["refreshTokenGrant"] + | components["schemas"]["passwordLimitedGrant"]; + authorizationCodeGrant: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + grant_type: "authorization_code"; + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description The client secret issued during registration. */ + client_secret?: string; + /** @description As returned to the redirect_uri of the client. */ + code: string; + /** @description The same redirect_uri used to `/authorize`. */ + redirect_uri: string; + /** @description The PKCE code verifier which is only required if a code_challenge was used to `/authorize``. */ + code_verifier?: string; + }; + refreshTokenGrant: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + grant_type: "refresh_token"; + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description The client secret issued during registration. */ + client_secret?: string; + /** @description As returned in the `/token` response. */ + refresh_token: string; + }; + passwordLimitedGrant: { + /** + * @description discriminator enum property added by openapi-typescript + * @enum {string} + */ + grant_type: "password_limited"; + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description The client secret issued during registration. */ + client_secret: string; + /** @description The email address or other issued identifier for a user. */ + username: string; + /** @description The password of the user. Password must be masked with the `username` before it is sent to the server. */ + password: string; + /** @description One or more scopes to request, if any, separated by whitespace. */ + scope?: string; + }; + tokenGrantResponse: { + /** @description The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion. */ + access_token: string; + /** @constant */ + token_type: "bearer"; + /** @description The number of seconds after which this access token will no longer be considered valid. */ + expires_in: number; + /** @description The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion. */ + refresh_token?: string; + /** @description The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted. */ + refresh_token_expires_in?: number; + /** @description One or more scopes to request, if any, separated by whitespace. */ + scope?: string; + }; + }; + responses: { + /** @description Session(s) were successfully revoked. */ + SessionsRevoked: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content?: never; + }; + /** @description Access token is missing or invalid. */ + Unauthorized: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + status: number; + status_reason: string; + error: string; + error_description: string; + error_uri: string; + state?: string; + }; + }; + }; + }; + parameters: never; + requestBodies: never; + headers: { + /** @description Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues. */ + "x-request-id": string; + }; + pathItems: never; +} +export type $defs = Record; +export interface operations { + getProfile: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Success */ + 200: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": { + iracing_name: string; + iracing_cust_id: number; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + }; + }; + getSessions: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Success */ + 200: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": { + sessions: { + /** @description A session identifier. This value is considered opaque and its format may change without warning at our discretion. */ + session_id: string; + /** @description A client identifier. */ + client_id: string; + /** @description The name of the client as selected during client registration. */ + client_name: string; + client_developer_name: string | null; + client_developer_url: string | null; + client_developer_email: string | null; + scope: string | null; + scope_descriptions: string | null; + current_session: boolean; + impersonated: boolean; + impersonation_note: string | null; + first_ip: string | null; + first_continent: string | null; + first_country: string | null; + first_subdivisions: string | null; + first_city: string | null; + first_user_agent_header: string | null; + first_user_agent_operating_system: string | null; + first_user_agent_browser: string | null; + last_ip: string | null; + last_continent: string | null; + last_country: string | null; + last_subdivisions: string | null; + last_city: string | null; + last_user_agent_header: string | null; + last_user_agent_operating_system: string | null; + last_user_agent_browser: string | null; + }[]; + }; + }; + }; + 401: components["responses"]["Unauthorized"]; + }; + }; + revokeCurrent: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + forgetBrowser?: boolean; + }; + }; + }; + responses: { + 200: components["responses"]["SessionsRevoked"]; + 401: components["responses"]["Unauthorized"]; + }; + }; + revokeSessions: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/x-www-form-urlencoded": { + sessionIds: string[]; + }; + }; + }; + responses: { + 200: components["responses"]["SessionsRevoked"]; + 401: components["responses"]["Unauthorized"]; + }; + }; + revokeClient: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + 200: components["responses"]["SessionsRevoked"]; + 401: components["responses"]["Unauthorized"]; + }; + }; + authorize: { + parameters: { + query: { + /** @description The client identifier issued during client registration. */ + client_id: string; + /** @description A redirect URI registered to the client, which must match exactly. */ + redirect_uri: string; + /** @description The only valid value for this is code. */ + response_type: "code"; + /** @description A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless. */ + code_challenge?: string; + /** @description The PKCE code challenge method. Either S256 (recommended) or plain. */ + code_challenge_method?: "plain" | "S256"; + /** @description This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks. */ + state?: string; + scope?: string; + /** @description Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user. */ + prompt?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Redirect back to the provided redirect_uri */ + 302: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + exchangeToken: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["tokenGrantParameters"]; + }; + }; + responses: { + /** @description Success */ + 200: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["tokenGrantResponse"]; + }; + }; + /** @description Failure */ + 400: { + headers: { + "x-request-id": components["headers"]["x-request-id"]; + [name: string]: unknown; + }; + content: { + "application/json": { + status: number; + status_reason: string; + error: string; + error_description: string; + error_uri: string; + state?: string; + }; + }; + }; + }; + }; +} diff --git a/packages/helpers/sync-track-assets/src/cli.ts b/apps/sync-track-assets-cli/src/index.ts similarity index 59% rename from packages/helpers/sync-track-assets/src/cli.ts rename to apps/sync-track-assets-cli/src/index.ts index 051f83a..33ce95a 100644 --- a/packages/helpers/sync-track-assets/src/cli.ts +++ b/apps/sync-track-assets-cli/src/index.ts @@ -2,13 +2,11 @@ import crypto from "node:crypto"; import { Command } from "@commander-js/extra-typings"; -import { TrackApi, AuthApi } from "@iracing-data/api-client"; -import axios from "axios"; -import { wrapper } from "axios-cookiejar-support"; -import { CookieJar } from "tough-cookie"; +import { Configuration, TrackApi } from "@iracing-data/api-client-fetch"; +import { syncTrackAssets } from "@iracing-data/sync-track-assets"; import * as dotenv from "dotenv"; -import { getIRacingCredentials } from "./util.js"; -import { syncTrackAssets } from "./"; +import createClient from "openapi-fetch"; +import type { paths } from "./generated/openapi"; dotenv.config(); @@ -34,29 +32,29 @@ const program = new Command("sync-iracing-track-assets") .action(async (_, command) => { console.log("Downloading track assets..."); - // Create an axios instance capable of handling cookies. - const client = wrapper( - axios.create({ - baseURL: "https://members-ng.iracing.com/", - withCredentials: true, - jar: new CookieJar(), - headers: { - "Content-Type": "application/json", - }, - }) - ); + const username = process.env.IRACING_AUTH_USERNAME!; + const password = process.env.IRACING_AUTH_PASSWORD!; + + /** + * Authorize the consumer with a password limited grant from iRacing OAuth services + */ + const client = createClient({ + baseUrl: "https://oauth.iracing.com/oauth2", + }); - // Use the axios instance to authenticate - const auth = new AuthApi(undefined, undefined, client); - const { username, password } = await getIRacingCredentials(); - const hashedPassword = await hashPassword(username, password); - await auth.postAuth({ - post_auth_request: { - email: username, - password: hashedPassword, + const session = await client.POST("/token", { + body: { + grant_type: "password_limited", + client_id: process.env.IRACING_AUTH_CLIENT!, + client_secret: process.env.IRACING_AUTH_SECRET!, + username: username, + password: await hashPassword(username, password), + scope: process.env.IRACING_AUTH_SCOPE!, }, }); + // TODO: Store the session somewhere? + const { outDir, writeFullAssets, @@ -77,7 +75,11 @@ const program = new Command("sync-iracing-track-assets") force, includeSVGs: includeSvgs, }, - new TrackApi(undefined, undefined, client) + new TrackApi( + new Configuration({ + accessToken: session.data?.access_token, + }) + ) ); console.log("Done!"); diff --git a/apps/sync-track-assets-cli/tsconfig.build.json b/apps/sync-track-assets-cli/tsconfig.build.json new file mode 100644 index 0000000..231b582 --- /dev/null +++ b/apps/sync-track-assets-cli/tsconfig.build.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig/node.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "module": "nodenext", + "moduleResolution": "nodenext", + "noUnusedLocals": false, + "declarationMap": false, + "sourceMap": false, + "isolatedModules": false, + "paths": { + "@/*": ["./src/*"] + }, + "lib": ["es6"] + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/apps/sync-track-assets-cli/tsconfig.json b/apps/sync-track-assets-cli/tsconfig.json new file mode 100644 index 0000000..5455dae --- /dev/null +++ b/apps/sync-track-assets-cli/tsconfig.json @@ -0,0 +1,9 @@ +{ + "include": [], + "references": [{ "path": "./tsconfig.build.json" }], + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/openapi/iracing-oauth.json b/openapi/iracing-oauth.json index 961ba59..793f8bf 100644 --- a/openapi/iracing-oauth.json +++ b/openapi/iracing-oauth.json @@ -1 +1 @@ -{"openapi":"3.1.1","info":{"title":"iRacing OAuth API","version":"0.0.1"},"servers":[{"url":"https://oauth.iracing.com/oauth2","description":"iRacing OAuth server."}],"externalDocs":{"url":"/oauth2/book"},"paths":{"/iracing/profile":{"get":{"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"iracing_name":{"type":"string"},"iracing_cust_id":{"type":"number"}},"required":["iracing_name","iracing_cust_id"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/sessions":{"get":{"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"type":"array","items":{"type":"object","properties":{"session_id":{"description":"A session identifier. This value is considered opaque and its format may change without warning at our discretion.","type":"string"},"client_id":{"description":"A client identifier.","type":"string"},"client_name":{"description":"The name of the client as selected during client registration.","type":"string"},"client_developer_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"client_developer_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"client_developer_email":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope_descriptions":{"anyOf":[{"type":"string"},{"type":"null"}]},"current_session":{"type":"boolean"},"impersonated":{"type":"boolean"},"impersonation_note":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_ip":{"anyOf":[{"type":"string","format":"ipv4","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"},{"type":"null"}]},"first_continent":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_subdivisions":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_city":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_header":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_operating_system":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_browser":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_ip":{"anyOf":[{"type":"string","format":"ipv4","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"},{"type":"null"}]},"last_continent":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_subdivisions":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_city":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_header":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_operating_system":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_browser":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["session_id","client_id","client_name","client_developer_name","client_developer_url","client_developer_email","scope","scope_descriptions","current_session","impersonated","impersonation_note","first_ip","first_continent","first_country","first_subdivisions","first_city","first_user_agent_header","first_user_agent_operating_system","first_user_agent_browser","last_ip","last_continent","last_country","last_subdivisions","last_city","last_user_agent_header","last_user_agent_operating_system","last_user_agent_browser"],"additionalProperties":false}}},"required":["sessions"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/current":{"post":{"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"forgetBrowser":{"type":"boolean"}}}}}},"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/sessions":{"post":{"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"sessionIds":{"type":"array","items":{"type":"string"}}},"required":["sessionIds"]}}}},"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/client":{"post":{"security":[{"bearerAuth":[]}],"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/authorize":{"get":{"parameters":[{"in":"query","name":"client_id","schema":{"description":"The client identifier issued during client registration.","type":"string"},"required":true,"description":"The client identifier issued during client registration."},{"in":"query","name":"redirect_uri","schema":{"description":"A redirect URI registered to the client, which must match exactly.","type":"string","format":"uri"},"required":true,"description":"A redirect URI registered to the client, which must match exactly."},{"in":"query","name":"response_type","schema":{"description":"The only valid value for this is code.","type":"string","const":"code"},"required":true,"description":"The only valid value for this is code."},{"in":"query","name":"code_challenge","schema":{"description":"A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless.","type":"string"},"description":"A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless."},{"in":"query","name":"code_challenge_method","schema":{"description":"The PKCE code challenge method. Either S256 (recommended) or plain.","default":"plain","anyOf":[{"type":"string","const":"plain"},{"type":"string","const":"S256"}]},"description":"The PKCE code challenge method. Either S256 (recommended) or plain."},{"in":"query","name":"state","schema":{"description":"This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks.","type":"string"},"description":"This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks."},{"in":"query","name":"scope","schema":{"description":"One or more scopes to request, if any, separated by whitespace.","type":"string"},"description":"One or more scopes to request, if any, separated by whitespace."},{"in":"query","name":"prompt","schema":{"description":"Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user.","type":"string"},"description":"Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user."}],"responses":{"302":{"description":"Redirect back to the provided redirect_uri"}}}},"/token":{"post":{"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"oneOf":[{"type":"object","properties":{"grant_type":{"type":"string","const":"authorization_code"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"Required only if issued.","type":"string"},"code":{"description":"As returned to the redirect_uri of the client.","type":"string"},"redirect_uri":{"description":"The same redirect_uri used to `/authorize`.","type":"string"},"code_verifier":{"description":"The PKCE code verifier which is only required if a code_challenge was used to `/authorize``.","type":"string"}},"required":["grant_type","client_id","code","redirect_uri"]},{"type":"object","properties":{"grant_type":{"type":"string","const":"authorization_code"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"Required only if issued.","type":"string"},"refresh_token":{"description":"As returned in the `/token` response.","type":"string"}},"required":["grant_type","client_id","refresh_token"]},{"type":"object","properties":{"grant_type":{"type":"string","const":"password_limited"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"Required only if issued.","type":"string"},"username":{"description":"The email address or other issued identifier for a user.","type":"string"},"password":{"description":"The password of the user. Password must be masked with the `username` before it is sent to the server.","type":"string"},"scope":{"description":"One or more scopes to request, if any, separated by whitespace.","type":"string"}},"required":["grant_type","client_id","username","password"]}],"type":"object"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"description":"The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion.","type":"string"},"token_type":{"type":"string","const":"bearer"},"expires_in":{"description":"The number of seconds after which this access token will no longer be considered valid.","type":"number"},"refresh_token":{"description":"The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion.","type":"string"},"refresh_token_expires_in":{"description":"The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted.","type":"number"},"scope":{"type":"string"}},"required":["access_token","token_type","expires_in","scope"],"additionalProperties":false}}}}}}}},"components":{"schemas":{"errorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"note":{"type":"string"}},"required":["error"],"additionalProperties":false}},"headers":{"x-request-id":{"required":true,"description":"Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.","schema":{"title":"Request ID","description":"Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.","type":"string"}}},"responses":{"SessionsRevoked":{"description":"Session(s) were successfully revoked.","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"}}}} \ No newline at end of file +{"openapi":"3.1.1","info":{"title":"iRacing OAuth API","version":"0.0.1"},"servers":[{"url":"https://oauth.iracing.com/oauth2","description":"iRacing OAuth server."}],"externalDocs":{"url":"/book"},"paths":{"/iracing/profile":{"get":{"operationId":"getProfile","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"iracing_name":{"type":"string"},"iracing_cust_id":{"type":"number"}},"required":["iracing_name","iracing_cust_id"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/sessions":{"get":{"operationId":"getSessions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"type":"array","items":{"type":"object","properties":{"session_id":{"description":"A session identifier. This value is considered opaque and its format may change without warning at our discretion.","type":"string"},"client_id":{"description":"A client identifier.","type":"string"},"client_name":{"description":"The name of the client as selected during client registration.","type":"string"},"client_developer_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"client_developer_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"client_developer_email":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope_descriptions":{"anyOf":[{"type":"string"},{"type":"null"}]},"current_session":{"type":"boolean"},"impersonated":{"type":"boolean"},"impersonation_note":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_ip":{"anyOf":[{"type":"string","format":"ipv4","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"},{"type":"null"}]},"first_continent":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_subdivisions":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_city":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_header":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_operating_system":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_user_agent_browser":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_ip":{"anyOf":[{"type":"string","format":"ipv4","pattern":"^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$"},{"type":"null"}]},"last_continent":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_subdivisions":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_city":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_header":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_operating_system":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_user_agent_browser":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["session_id","client_id","client_name","client_developer_name","client_developer_url","client_developer_email","scope","scope_descriptions","current_session","impersonated","impersonation_note","first_ip","first_continent","first_country","first_subdivisions","first_city","first_user_agent_header","first_user_agent_operating_system","first_user_agent_browser","last_ip","last_continent","last_country","last_subdivisions","last_city","last_user_agent_header","last_user_agent_operating_system","last_user_agent_browser"],"additionalProperties":false}}},"required":["sessions"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/current":{"post":{"operationId":"revokeCurrent","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"forgetBrowser":{"type":"boolean"}}}}}},"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/sessions":{"post":{"operationId":"revokeSessions","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"sessionIds":{"type":"array","items":{"type":"string"}}},"required":["sessionIds"]}}}},"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/revoke/client":{"post":{"operationId":"revokeClient","security":[{"bearerAuth":[]}],"responses":{"200":{"$ref":"#/components/responses/SessionsRevoked"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/authorize":{"get":{"operationId":"authorize","parameters":[{"in":"query","name":"client_id","schema":{"description":"The client identifier issued during client registration.","type":"string"},"required":true,"description":"The client identifier issued during client registration."},{"in":"query","name":"redirect_uri","schema":{"description":"A redirect URI registered to the client, which must match exactly.","type":"string","format":"uri"},"required":true,"description":"A redirect URI registered to the client, which must match exactly."},{"in":"query","name":"response_type","schema":{"description":"The only valid value for this is code.","type":"string","const":"code"},"required":true,"description":"The only valid value for this is code."},{"in":"query","name":"code_challenge","schema":{"description":"A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless.","type":"string"},"description":"A PKCE code challenge. We require this of any client which cannot reasonably keep a secret, and encourage server-side applications to implement it regardless."},{"in":"query","name":"code_challenge_method","schema":{"description":"The PKCE code challenge method. Either S256 (recommended) or plain.","default":"plain","anyOf":[{"type":"string","const":"plain"},{"type":"string","const":"S256"}]},"description":"The PKCE code challenge method. Either S256 (recommended) or plain."},{"in":"query","name":"state","schema":{"description":"This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks.","type":"string"},"description":"This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks."},{"in":"query","name":"scope","schema":{"description":"One or more scopes to request, if any, separated by whitespace.","type":"string"}},{"in":"query","name":"prompt","schema":{"description":"Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user.","type":"string"},"description":"Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user."}],"responses":{"302":{"description":"Redirect back to the provided redirect_uri"}}}},"/token":{"post":{"operationId":"exchangeToken","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/tokenGrantParameters"}}}},"responses":{"200":{"description":"Success","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tokenGrantResponse"}}}},"400":{"description":"Failure","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}},"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"status_reason":{"type":"string"},"error":{"type":"string"},"error_description":{"type":"string"},"error_uri":{"type":"string"},"state":{"type":"string"}},"required":["status","status_reason","error","error_description","error_uri"],"additionalProperties":false}}}}}}}},"components":{"schemas":{"tokenGrantParameters":{"oneOf":[{"$ref":"#/components/schemas/authorizationCodeGrant"},{"$ref":"#/components/schemas/refreshTokenGrant"},{"$ref":"#/components/schemas/passwordLimitedGrant"}],"type":"object","discriminator":{"propertyName":"grant_type","mapping":{"authorization_code":"#/components/schemas/authorizationCodeGrant","refresh_token":"#/components/schemas/refreshTokenGrant","password_limited":"#/components/schemas/passwordLimitedGrant"}}},"authorizationCodeGrant":{"type":"object","properties":{"grant_type":{"type":"string","const":"authorization_code"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"The client secret issued during registration.","type":"string"},"code":{"description":"As returned to the redirect_uri of the client.","type":"string"},"redirect_uri":{"description":"The same redirect_uri used to `/authorize`.","type":"string"},"code_verifier":{"description":"The PKCE code verifier which is only required if a code_challenge was used to `/authorize``.","type":"string"}},"required":["grant_type","client_id","code","redirect_uri"]},"refreshTokenGrant":{"type":"object","properties":{"grant_type":{"type":"string","const":"refresh_token"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"The client secret issued during registration.","type":"string"},"refresh_token":{"description":"As returned in the `/token` response.","type":"string"}},"required":["grant_type","client_id","refresh_token"]},"passwordLimitedGrant":{"type":"object","properties":{"grant_type":{"type":"string","const":"password_limited"},"client_id":{"description":"The client identifier issued during client registration.","type":"string"},"client_secret":{"description":"The client secret issued during registration.","type":"string"},"username":{"description":"The email address or other issued identifier for a user.","type":"string"},"password":{"description":"The password of the user. Password must be masked with the `username` before it is sent to the server.","type":"string"},"scope":{"description":"One or more scopes to request, if any, separated by whitespace.","type":"string"}},"required":["grant_type","client_id","client_secret","username","password"]},"tokenGrantResponse":{"type":"object","properties":{"access_token":{"description":"The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion.","type":"string"},"token_type":{"type":"string","const":"bearer"},"expires_in":{"description":"The number of seconds after which this access token will no longer be considered valid.","type":"number"},"refresh_token":{"description":"The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion.","type":"string"},"refresh_token_expires_in":{"description":"The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted.","type":"number"},"scope":{"description":"One or more scopes to request, if any, separated by whitespace.","type":"string"}},"required":["access_token","token_type","expires_in"],"additionalProperties":false}},"headers":{"x-request-id":{"required":true,"description":"Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.","schema":{"title":"Request ID","description":"Each incoming request is assigned a request identifier. The request identifier is used to associate log messages with the request. Please include the value of the received x-request-id header when reporting issues.","type":"string"}}},"responses":{"SessionsRevoked":{"description":"Session(s) were successfully revoked.","headers":{"x-request-id":{"$ref":"#/components/headers/x-request-id"}}},"Unauthorized":{"description":"Access token is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"status_reason":{"type":"string"},"error":{"type":"string"},"error_description":{"type":"string"},"error_uri":{"type":"string"},"state":{"type":"string"}},"required":["status","status_reason","error","error_description","error_uri"],"additionalProperties":false}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT Authentication"}}}} \ No newline at end of file diff --git a/package.json b/package.json index 811a079..e729dcf 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "codegen:openapi:oauth": "iracing-oauth-api-openapi -o ./openapi -f iracing-oauth.json", "codegen:client": "pnpm -w --parallel --stream '/^codegen:client:api:.+$/'", "codegen:client:api": "pnpm -w --parallel --stream '/^codegen:client:api:.+$/'", - "codegen:client:api:axios": "openapi-generator-cli generate -g typescript-axios -i openapi/iracing.json -o packages/_api/client/axios --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client-axios'", - "codegen:client:api:fetch": "openapi-generator-cli generate -g typescript-fetch -i openapi/iracing.json -o packages/_api/client/fetch --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client-fetch'", + "codegen:client:api:axios": "openapi-generator-cli generate -g typescript-axios -i openapi/iracing.json -o packages/api/client/axios --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client-axios'", + "codegen:client:api:fetch": "openapi-generator-cli generate -g typescript-fetch -i openapi/iracing.json -o packages/api/client/fetch --additional-properties=useSingleRequestParameter=true,paramNaming='snake_case',npmName='@iracing-data/api-client-fetch'", "dev:pkg": "pnpm --recursive --parallel --stream dev", "dev:tsc": "tsc --build tsconfig.json --watch", "dev": "NODE_ENV=development pnpm --stream '/^dev:.+$/'", @@ -35,6 +35,7 @@ "@typescript-eslint/eslint-plugin": "8.24.1", "@typescript-eslint/parser": "8.22.0", "dotenv": "16.4.7", + "esbuild": "^0.27.0", "eslint": "^9", "eslint-config-prettier": "10.1.8", "eslint-plugin-import": "^2.31.0", @@ -47,6 +48,7 @@ "typescript": "^5.9.2" }, "workspaces": [ + "apps/*", "packages/*", "packages/api/*", "packages/api/client/*", diff --git a/packages/helpers/oauth-schema-to-openapi/src/index.ts b/packages/helpers/oauth-schema-to-openapi/src/index.ts index ffe642a..b1ae05e 100644 --- a/packages/helpers/oauth-schema-to-openapi/src/index.ts +++ b/packages/helpers/oauth-schema-to-openapi/src/index.ts @@ -1,5 +1,5 @@ -import { IRacingErrorResponseSchema } from "@iracing-data/api-schema"; import { + IRacingOAuthErrorResponseSchema, IRacingOAuthAuthorizeParametersSchema, IRacingOAuthHeadersSchema, IRacingOAuthProfileResponseSchema, @@ -43,7 +43,7 @@ export async function generateOpenAPISpec({ }, ], externalDocs: { - url: "/oauth2/book", + url: "/book", }, components: { headers: { @@ -58,7 +58,7 @@ export async function generateOpenAPISpec({ description: "Access token is missing or invalid.", content: { "application/json": { - schema: IRacingErrorResponseSchema, + schema: IRacingOAuthErrorResponseSchema, }, }, }, @@ -75,6 +75,7 @@ export async function generateOpenAPISpec({ paths: { "/iracing/profile": { get: { + operationId: "getProfile", security: [{ bearerAuth: [] }], responses: { 200: { @@ -92,6 +93,7 @@ export async function generateOpenAPISpec({ }, "/sessions": { get: { + operationId: "getSessions", security: [{ bearerAuth: [] }], responses: { 200: { @@ -109,6 +111,7 @@ export async function generateOpenAPISpec({ }, "/revoke/current": { post: { + operationId: "revokeCurrent", security: [{ bearerAuth: [] }], requestBody: { content: { @@ -125,6 +128,7 @@ export async function generateOpenAPISpec({ }, "/revoke/sessions": { post: { + operationId: "revokeSessions", security: [{ bearerAuth: [] }], requestBody: { content: { @@ -141,6 +145,7 @@ export async function generateOpenAPISpec({ }, "/revoke/client": { post: { + operationId: "revokeClient", security: [{ bearerAuth: [] }], responses: { 200: { $ref: "#/components/responses/SessionsRevoked" }, @@ -150,6 +155,7 @@ export async function generateOpenAPISpec({ }, "/authorize": { get: { + operationId: "authorize", requestParams: { query: IRacingOAuthAuthorizeParametersSchema, }, @@ -162,6 +168,7 @@ export async function generateOpenAPISpec({ }, "/token": { post: { + operationId: "exchangeToken", requestBody: { content: { "application/x-www-form-urlencoded": { @@ -172,10 +179,18 @@ export async function generateOpenAPISpec({ responses: { 200: { description: "Success", + headers: IRacingOAuthHeadersSchema, content: { "application/json": { schema: IRacingOAuthTokenResponseSchema }, }, }, + 400: { + description: "Failure", + headers: IRacingOAuthHeadersSchema, + content: { + "application/json": { schema: IRacingOAuthErrorResponseSchema }, + }, + }, }, }, }, diff --git a/packages/helpers/sync-car-assets/package.json b/packages/helpers/sync-car-assets/package.json index 2fdcd3a..c202297 100644 --- a/packages/helpers/sync-car-assets/package.json +++ b/packages/helpers/sync-car-assets/package.json @@ -1,28 +1,12 @@ { "name": "@iracing-data/sync-car-assets", - "version": "0.0.2-alpha.2", - "type": "module", + "version": "0.0.2-alpha.3", "main": "dist/index.js", - "bin": { - "sync-iracing-car-assets": "dist/cli.js" - }, "scripts": { - "build": "tsc --build tsconfig.build.json", - "build:executable:macos": "./scripts/build-executable-macos.sh", - "build:executable:windows": "./scripts/build-executable-windows.sh", - "bundle": "esbuild src/cli.ts --bundle --platform=node --tsconfig=tsconfig.build.json --outfile=build/cli.cjs --format=cjs" + "build": "tsc --build tsconfig.build.json" }, "dependencies": { - "@commander-js/extra-typings": "^13.1.0", - "@iracing-data/api-client": "workspace:*", - "@iracing-data/api-schema": "workspace:*", - "axios": "^1.7.9", - "axios-cookiejar-support": "^6.0.4", - "commander": "^14.0.0", - "dotenv": "16.4.7", - "tough-cookie": "^5.1.1" - }, - "devDependencies": { - "esbuild": "^0.25.9" + "@iracing-data/api-client-fetch": "workspace:*", + "@iracing-data/api-schema": "workspace:*" } } \ No newline at end of file diff --git a/packages/helpers/sync-car-assets/src/index.ts b/packages/helpers/sync-car-assets/src/index.ts index 08ed9c2..d1400d3 100644 --- a/packages/helpers/sync-car-assets/src/index.ts +++ b/packages/helpers/sync-car-assets/src/index.ts @@ -1,15 +1,12 @@ import { writeFile, mkdir } from "node:fs/promises"; import path from "node:path"; -import { CarApi } from "@iracing-data/api-client"; +import { CarApi } from "@iracing-data/api-client-fetch"; import { IRacingGetCarResponse, IRacingGetCarAssetsResponse, } from "@iracing-data/api-schema"; -import * as dotenv from "dotenv"; import { exists, fetchAPIResponseData } from "./util.js"; -dotenv.config(); - export interface SyncCarAssetsOptions { /** * The directory to output the car files to. @@ -74,12 +71,8 @@ export async function syncCarAssets( const [cars, carInfo] = await Promise.all([ client .getCarAssets() - .then((r) => r.data) .then(fetchAPIResponseData), - client - .getCar() - .then((r) => r.data) - .then(fetchAPIResponseData), + client.getCar().then(fetchAPIResponseData), ]); /** diff --git a/packages/helpers/sync-car-assets/src/util.ts b/packages/helpers/sync-car-assets/src/util.ts index 63f4d71..31c1efb 100644 --- a/packages/helpers/sync-car-assets/src/util.ts +++ b/packages/helpers/sync-car-assets/src/util.ts @@ -1,5 +1,4 @@ -import { IracingAPIResponse } from "@iracing-data/api-client"; -import assert from "node:assert"; +import { IracingAPIResponse } from "@iracing-data/api-client-fetch"; import { access, constants } from "node:fs/promises"; /** @@ -16,38 +15,6 @@ export const exists = async (path: string) => { } }; -/** - * Attempts to read credentials from the environment variables. - * @returns The parsed credentials. - */ -export async function getIRacingCredentials(usernameProp?: string) { - /** - * The provided username, or the username from the environment variable, or undefined. - */ - const usernameOption = - (usernameProp ?? process.env.IRACING_USERNAME) - ? `${usernameProp ?? process.env.IRACING_USERNAME}` - : undefined; - - /** - * The password from the envrionment variable, or undefined. - */ - const passwordOption = process.env.IRACING_PASSWORD - ? `${process.env.IRACING_PASSWORD}` - : undefined; - - assert( - usernameOption && usernameOption.length > 0, - "Please provide username via environment variable (IRACING_USERNAME)." - ); - assert( - passwordOption && passwordOption.length > 0, - "Please provider password via environment variable (IRACING_PASSWORD)." - ); - - return { username: usernameOption, password: passwordOption }; -} - export async function fetchAPIResponseData({ expires, link, diff --git a/packages/helpers/sync-track-assets/package.json b/packages/helpers/sync-track-assets/package.json index 70345ff..c0295c5 100644 --- a/packages/helpers/sync-track-assets/package.json +++ b/packages/helpers/sync-track-assets/package.json @@ -2,22 +2,11 @@ "name": "@iracing-data/sync-track-assets", "version": "0.0.2-alpha.2", "main": "dist/index.js", - "bin": { - "sync-iracing-track-assets": "dist/cli.js" - }, "scripts": { "build": "tsc --build tsconfig.build.json" }, "dependencies": { - "@iracing-data/api-client": "workspace:*", - "@iracing-data/api-schema": "workspace:*", - "axios": "^1.7.9", - "axios-cookiejar-support": "^6.0.4", - "commander": "^14.0.0", - "dotenv": "16.4.7", - "tough-cookie": "^5.1.1" - }, - "devDependencies": { - "@commander-js/extra-typings": "^13.1.0" + "@iracing-data/api-client-fetch": "workspace:*", + "@iracing-data/api-schema": "workspace:*" } } \ No newline at end of file diff --git a/packages/helpers/sync-track-assets/src/index.ts b/packages/helpers/sync-track-assets/src/index.ts index b0c19c7..afb9174 100644 --- a/packages/helpers/sync-track-assets/src/index.ts +++ b/packages/helpers/sync-track-assets/src/index.ts @@ -1,27 +1,18 @@ import { writeFile, mkdir } from "node:fs/promises"; import path from "node:path"; -import * as dotenv from "dotenv"; -import { exists, fetchAPIResponseData, getIRacingCredentials } from "./util"; -import { TrackApi } from "@iracing-data/api-client"; +import { exists, fetchAPIResponseData } from "./util"; +import { TrackApi } from "@iracing-data/api-client-fetch"; import { IRacingGetTrackAssetsResponse, IRacingGetTrackResponse, } from "@iracing-data/api-schema"; -dotenv.config(); - export interface SyncTrackAssetsOptions { /** * The directory to output the SVG files to. */ outputDir: string; - /** - * iRacing username. - * @default undefined - */ - username?: string; - /** * Force download of track layers even if they already exist. * @default false @@ -71,7 +62,6 @@ export interface SyncTrackAssetsOptions { export async function syncTrackAssets( { outputDir, - username: usernameProp, force = false, writeFullAssets = false, writeFullInfo = false, @@ -96,12 +86,8 @@ export async function syncTrackAssets( const [tracks, trackInfo] = await Promise.all([ client .getTrackAssets() - .then((r) => r.data) .then(fetchAPIResponseData), - client - .getTrack() - .then((r) => r.data) - .then(fetchAPIResponseData), + client.getTrack().then(fetchAPIResponseData), ]); /** diff --git a/packages/helpers/sync-track-assets/src/util.ts b/packages/helpers/sync-track-assets/src/util.ts index b37501b..ab7aa81 100644 --- a/packages/helpers/sync-track-assets/src/util.ts +++ b/packages/helpers/sync-track-assets/src/util.ts @@ -1,4 +1,4 @@ -import { IracingAPIResponse } from "@iracing-data/api-client"; +import { IracingAPIResponse } from "@iracing-data/api-client-fetch"; import assert from "node:assert"; import { access, constants } from "node:fs/promises"; /** @@ -15,39 +15,6 @@ export const exists = async (path: string) => { } }; -/** - * Attempts to read credentials from the environment variables. If not provided, - * prompts the user to enter them. - * @returns The parsed credentials. - */ -export async function getIRacingCredentials(usernameProp?: string) { - /** - * The provided username, or the username from the environment variable, or undefined. - */ - const usernameOption = - (usernameProp ?? process.env.IRACING_USERNAME) - ? `${usernameProp ?? process.env.IRACING_USERNAME}` - : undefined; - - /** - * The password from the envrionment variable, or undefined. - */ - const passwordOption = process.env.IRACING_PASSWORD - ? `${process.env.IRACING_PASSWORD}` - : undefined; - - assert( - usernameOption && usernameOption.length > 0, - "Please provide username via environment variable (IRACING_USERNAME)." - ); - assert( - passwordOption && passwordOption.length > 0, - "Please provider password via environment variable (IRACING_PASSWORD)." - ); - - return { username: usernameOption, password: passwordOption }; -} - export async function fetchAPIResponseData({ expires, link, diff --git a/packages/oauth/client/package.json b/packages/oauth/client/package.json index eda9fa6..b145e23 100644 --- a/packages/oauth/client/package.json +++ b/packages/oauth/client/package.json @@ -9,6 +9,6 @@ "dependencies": { "@iracing-data/oauth-schema": "workspace:*", "oauth4webapi": "^3.7.0", - "zod": "^4.0.17" + "zod": "^4.1.12" } } \ No newline at end of file diff --git a/packages/oauth/client/src/client.ts b/packages/oauth/client/src/client.ts index 1d9a6f7..e5b40c0 100644 --- a/packages/oauth/client/src/client.ts +++ b/packages/oauth/client/src/client.ts @@ -1,6 +1,8 @@ +import assert from "node:assert"; import { IRacingOAuthTokenResponseSchema, IRacingOAuthTokenResponse, + IRacingOAuthPasswordLimitedGrantParametersSchema, } from "@iracing-data/oauth-schema"; import * as oauth from "oauth4webapi"; import { OAuthCallbackError } from "./oauth-callback-error"; @@ -10,7 +12,7 @@ import { IRacingOAuthClientMetadataSchema, StateStore, } from "./schema"; -import { sanitizeTokenResponse } from "./utils"; +import { hashPassword, sanitizeTokenResponse } from "./utils"; export type OAuthClientOptions = { // Config @@ -161,6 +163,33 @@ export class OAuthClient { return await IRacingOAuthTokenResponseSchema.parseAsync(result); } + async passwordLimitedGrant() { + assert( + this.clientMetadata.username, + "To use the password limited grant, a username must be provided." + ); + + assert( + this.clientMetadata.password, + "To use the password limited grant, a password must be provided." + ); + + const parameters = + await IRacingOAuthPasswordLimitedGrantParametersSchema.parseAsync({ + grant_type: "password_limited", + client_id: this.clientMetadata.clientId, + client_secret: this.clientMetadata.clientSecret, + username: this.clientMetadata.username, + password: await hashPassword( + this.clientMetadata.username, + this.clientMetadata.password + ), + scope: this.clientMetadata.scopes.join(" "), + }); + + console.log("Send this to the iRacing OAuth service:", parameters); + } + async refresh(token: string) { const authorizationServer: oauth.AuthorizationServer = { issuer: this.clientMetadata.issuer, diff --git a/packages/oauth/client/src/schema/oauth.ts b/packages/oauth/client/src/schema/oauth.ts index e3d31f4..e767788 100644 --- a/packages/oauth/client/src/schema/oauth.ts +++ b/packages/oauth/client/src/schema/oauth.ts @@ -1,4 +1,5 @@ -import { z } from "zod/v4"; +import { z } from "zod"; +import { IRacingOAuthScopesSchema } from "@iracing-data/oauth-schema"; const DEFAULT_OAUTH_URL = "https://oauth.iracing.com/oauth2"; const DEFAULT_AUTH_URL = `${DEFAULT_OAUTH_URL}/authorize`; @@ -26,21 +27,6 @@ export const IRacingOAuthTokenURL = z description: "The endpoint for token exchange.", }); -// Allowed scopes. See: https://oauth.iracing.com/oauth2/book/scopes.html -export const IRacingOAuthScopeSchema = z.enum([ - "iracing.auth", - "iracing.profile", -]); - -export const IRacingOAuthScopesSchema = z - .array(IRacingOAuthScopeSchema) - .min(1) - // Ensure uniqueness in the provided values - .refine( - (values) => new Set(values).size === values.length, - "Each value must be unique." - ); - export const IRacingOAuthClientMetadataSchema = z .object({ authorizationUrl: z @@ -70,7 +56,7 @@ export const IRacingOAuthClientMetadataSchema = z description: `The OAuth2.0 issuer to use in discovery cases. Defaults to "${DEFAULT_OAUTH_URL}"`, note: "The default is acceptable in 99.9% of use-cases, but is able to be overridden in case iRacing makes changes to the URLs.", }), - scopes: IRacingOAuthScopesSchema.meta({ + scopes: z.array(IRacingOAuthScopesSchema).meta({ id: "scopes", title: "Scopes", description: @@ -88,6 +74,18 @@ export const IRacingOAuthClientMetadataSchema = z description: "The client secret optionally provided by iRacing during client registration. See: https://oauth.iracing.com/oauth2/book/client_registration.html", }), + username: z.string().optional().meta({ + id: "username", + title: "Email address or username.", + description: + "The email address or other issued identifier for a user. Only used in the password limited grant.", + }), + password: z.string().optional().meta({ + id: "password", + title: "User password", + description: + "The password of the user. Only used in the password limited grant.", + }), redirectUri: z.url().meta({ id: "redirectUri", title: "Redirect URI", @@ -117,8 +115,6 @@ export type IRacingAuthorizationURL = z.infer< >; export type IRacingTokenURL = z.infer; -export type IRacingOAuthScope = z.infer; - export type IRacingOAuthClientMetadataInput = z.input< typeof IRacingOAuthClientMetadataSchema >; diff --git a/packages/oauth/client/src/utils.ts b/packages/oauth/client/src/utils.ts index 999d4c8..1dffdd5 100644 --- a/packages/oauth/client/src/utils.ts +++ b/packages/oauth/client/src/utils.ts @@ -1,3 +1,5 @@ +import crypto from "node:crypto"; + export type OAuthTokenResponse = { access_token: string; token_type: "Bearer"; @@ -34,3 +36,13 @@ export async function sanitizeTokenResponse( headers: response.headers, }); } + +/** + * Compute the Base64‑encoded SHA‑256 hash of (password + email.toLowerCase()). + */ +export async function hashPassword(email: string, password: string) { + return crypto + .createHash("sha256") + .update(password + email.toLowerCase()) + .digest("base64"); +} diff --git a/packages/oauth/schema/src/schema.ts b/packages/oauth/schema/src/schema.ts index 5d44302..b89a568 100644 --- a/packages/oauth/schema/src/schema.ts +++ b/packages/oauth/schema/src/schema.ts @@ -10,11 +10,26 @@ export const IRacingOAuthClientIdSchema = z.string().meta({ description: "The client identifier issued during client registration.", }); -export const IRacingOAuthClientSecretSchema = z.string().optional().meta({ - description: "Required only if issued.", +export const IRacingOAuthClientSecretSchema = z.string().meta({ + description: "The client secret issued during registration.", }); -export const IRacingOAuthScopesSchema = z.string().optional().meta({ +export const IRacingOAuthScopeAuthSchema = z.literal("iracing.auth").meta({ + description: "OAuth scope that grants authorization for iRacing services.", +}); + +export const IRacingOAuthScopeProfileSchema = z + .literal("iracing.profile") + .meta({ + description: "OAuth scope that grants access to the iRacing profile.", + }); + +export const IRacingOAuthScopesSchema = z.union([ + IRacingOAuthScopeAuthSchema, + IRacingOAuthScopeProfileSchema, +]); + +export const IRacingOAuthScopesStringSchema = z.string().optional().meta({ description: "One or more scopes to request, if any, separated by whitespace.", }); @@ -37,6 +52,15 @@ export const IRacingOAuthHeadersSchema = z.object({ // Requests and responses +export const IRacingOAuthErrorResponseSchema = z.object({ + status: z.number(), + status_reason: z.string(), + error: z.string(), + error_description: z.string(), + error_uri: z.string(), + state: z.string().optional(), +}); + export const IRacingOAuthAuthorizeParametersSchema = z.object({ client_id: IRacingOAuthClientIdSchema, redirect_uri: z.url().meta({ @@ -62,7 +86,7 @@ export const IRacingOAuthAuthorizeParametersSchema = z.object({ description: "This state value will be returned unmodified at the end of the authentication and authorization flow. It may be used to store request-specific data and in the prevention of CSRF attacks.", }), - scope: IRacingOAuthScopesSchema, + scope: IRacingOAuthScopesStringSchema.optional(), prompt: z.string().optional().meta({ description: "Space-delimited, case-sensitive list of ASCII string values which influence how the authorization server interacts with the user.", @@ -79,11 +103,11 @@ export const IRacingOAuthCllbackParametersSchema = z "Parameters are added to the query string of the `redirect_uri`.", }); -export const IRacingOAuthTokenAuthorizationCodeGrantParametersSchema = z.object( - { +export const IRacingOAuthTokenAuthorizationCodeGrantParametersSchema = z + .object({ grant_type: z.literal("authorization_code"), client_id: IRacingOAuthClientIdSchema, - client_secret: IRacingOAuthClientSecretSchema, + client_secret: IRacingOAuthClientSecretSchema.optional(), code: z .string() .meta({ description: "As returned to the redirect_uri of the client." }), @@ -94,61 +118,76 @@ export const IRacingOAuthTokenAuthorizationCodeGrantParametersSchema = z.object( description: "The PKCE code verifier which is only required if a code_challenge was used to `/authorize``.", }), - } -); + }) + .meta({ + id: "authorizationCodeGrant", + }); -export const IRacingOAuthTokenRefreshGrantParametersSchema = z.object({ - grant_type: z.literal("authorization_code"), - client_id: IRacingOAuthClientIdSchema, - client_secret: IRacingOAuthClientSecretSchema, - refresh_token: z.string().meta({ - description: "As returned in the `/token` response.", - }), -}); +export const IRacingOAuthTokenRefreshGrantParametersSchema = z + .object({ + grant_type: z.literal("refresh_token"), + client_id: IRacingOAuthClientIdSchema, + client_secret: IRacingOAuthClientSecretSchema.optional(), + refresh_token: z.string().meta({ + description: "As returned in the `/token` response.", + }), + }) + .meta({ + id: "refreshTokenGrant", + }); -export const IRacingOAuthPasswordLimitedGrantParametersSchema = z.object({ - grant_type: z.literal("password_limited"), - client_id: IRacingOAuthClientIdSchema, - client_secret: IRacingOAuthClientSecretSchema, - username: z.string().meta({ - description: "The email address or other issued identifier for a user.", - }), - password: z.string().meta({ - description: - "The password of the user. Password must be masked with the `username` before it is sent to the server.", - }), - scope: IRacingOAuthScopesSchema, -}); +export const IRacingOAuthPasswordLimitedGrantParametersSchema = z + .object({ + grant_type: z.literal("password_limited"), + client_id: IRacingOAuthClientIdSchema, + client_secret: IRacingOAuthClientSecretSchema, + username: z.string().meta({ + description: "The email address or other issued identifier for a user.", + }), + password: z.string().meta({ + description: + "The password of the user. Password must be masked with the `username` before it is sent to the server.", + }), + scope: IRacingOAuthScopesStringSchema.optional(), + }) + .meta({ + id: "passwordLimitedGrant", + }); -export const IRacingOAuthTokenParametersSchema = z.discriminatedUnion( - "grant_type", - [ +export const IRacingOAuthTokenParametersSchema = z + .discriminatedUnion("grant_type", [ IRacingOAuthTokenAuthorizationCodeGrantParametersSchema, IRacingOAuthTokenRefreshGrantParametersSchema, IRacingOAuthPasswordLimitedGrantParametersSchema, - ] -); + ]) + .meta({ + id: "tokenGrantParameters", + }); -export const IRacingOAuthTokenResponseSchema = z.object({ - access_token: z.string().meta({ - description: - "The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion.", - }), - token_type: z.literal("bearer"), - expires_in: z.number().meta({ - description: - "The number of seconds after which this access token will no longer be considered valid.", - }), - refresh_token: z.string().optional().meta({ - description: - "The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion.", - }), - refresh_token_expires_in: z.number().optional().meta({ - description: - "The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted.", - }), - scope: z.string().trim(), -}); +export const IRacingOAuthTokenResponseSchema = z + .object({ + access_token: z.string().meta({ + description: + "The access token may be used to authorize a connection to a resource server. The value is considered opaque and its format may change without warning at our discretion.", + }), + token_type: z.literal("bearer"), + expires_in: z.number().meta({ + description: + "The number of seconds after which this access token will no longer be considered valid.", + }), + refresh_token: z.string().optional().meta({ + description: + "The refresh token may be used in a Refresh Token Grant to obtain new access and refresh tokens. Each refresh token may only be used once. The value is considered opaque and its format may change without warning at our discretion.", + }), + refresh_token_expires_in: z.number().optional().meta({ + description: + "The number of seconds after which this refresh token will no longer be considered valid. The server may not issue a refresh token, in which case this field will be omitted.", + }), + scope: IRacingOAuthScopesStringSchema.optional(), + }) + .meta({ + id: "tokenGrantResponse", + }); export const IRacingOAuthSessionSchema = z.object({ session_id: z.string().meta({ @@ -210,6 +249,17 @@ export const IRacingOAuthRevokeSessionsInputSchema = z.object({ // Types export type IRacingOAuthClientId = z.infer; +export type IRacingOAuthClientSecret = z.infer< + typeof IRacingOAuthClientSecretSchema +>; +export type IRacingOAuthScopeAuth = z.infer; +export type IRacingOAuthScopeProfile = z.infer< + typeof IRacingOAuthScopeProfileSchema +>; +export type IRacingOAuthScopes = z.infer; +export type IRacingOAuthScopesString = z.infer< + typeof IRacingOAuthScopesStringSchema +>; export type IRacingOAuthRequestIdHeader = z.infer< typeof IRacingOAuthRequestIdHeaderSchema >; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15a3505..09790ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,9 @@ importers: dotenv: specifier: 16.4.7 version: 16.4.7 + esbuild: + specifier: ^0.27.0 + version: 0.27.0 eslint: specifier: ^9 version: 9.34.0 @@ -70,6 +73,114 @@ importers: specifier: ^5.9.2 version: 5.9.2 + apps/race-events: + dependencies: + '@iracing-data/car-session-flag-events': + specifier: workspace:* + version: link:../../packages/events/car-session-flag-events + '@iracing-data/car-track-location-events': + specifier: workspace:* + version: link:../../packages/events/car-track-location-events + '@iracing-data/grpc-node': + specifier: workspace:* + version: link:../../packages/iracing-telemetry-grpc-node + '@iracing-data/pace-flag-events': + specifier: workspace:* + version: link:../../packages/events/pace-flag-events + '@iracing-data/pace-order-events': + specifier: workspace:* + version: link:../../packages/events/pace-order-events + '@iracing-data/pit-lane-events': + specifier: workspace:* + version: link:../../packages/events/pit-lane-events + '@iracing-data/session-flag-events': + specifier: workspace:* + version: link:../../packages/events/session-flag-events + '@iracing-data/session-state-events': + specifier: workspace:* + version: link:../../packages/events/session-state-events + '@iracing-data/telemetry-types': + specifier: workspace:* + version: link:../../packages/iracing-telemetry-types + ascii-table3: + specifier: ^1.0.1 + version: 1.0.1 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + luxon: + specifier: ^3.7.1 + version: 3.7.2 + pino: + specifier: ^9.9.4 + version: 9.9.4 + pino-pretty: + specifier: ^13.1.1 + version: 13.1.1 + devDependencies: + '@types/luxon': + specifier: ^3.7.1 + version: 3.7.1 + esbuild: + specifier: ^0.25.9 + version: 0.25.9 + tsx: + specifier: ^4.20.5 + version: 4.20.5 + typescript: + specifier: ^5.9.2 + version: 5.9.2 + + apps/sync-car-assets-cli: + dependencies: + '@iracing-data/api-client-fetch': + specifier: workspace:* + version: link:../../packages/api/client/fetch + '@iracing-data/sync-car-assets': + specifier: workspace:* + version: link:../../packages/helpers/sync-car-assets + commander: + specifier: ^14.0.2 + version: 14.0.2 + openapi-fetch: + specifier: ^0.15.0 + version: 0.15.0 + devDependencies: + '@commander-js/extra-typings': + specifier: ^14.0.0 + version: 14.0.0(commander@14.0.2) + esbuild: + specifier: ^0.27.0 + version: 0.27.0 + openapi-typescript: + specifier: 7.10.1 + version: 7.10.1(typescript@5.9.2) + + apps/sync-track-assets-cli: + dependencies: + '@iracing-data/api-client-fetch': + specifier: workspace:* + version: link:../../packages/api/client/fetch + '@iracing-data/sync-track-assets': + specifier: workspace:* + version: link:../../packages/helpers/sync-track-assets + commander: + specifier: ^14.0.2 + version: 14.0.2 + openapi-fetch: + specifier: ^0.15.0 + version: 0.15.0 + devDependencies: + '@commander-js/extra-typings': + specifier: ^14.0.0 + version: 14.0.0(commander@14.0.2) + esbuild: + specifier: ^0.27.0 + version: 0.27.0 + openapi-typescript: + specifier: 7.10.1 + version: 7.10.1(typescript@5.9.2) + examples/iracing-proxy-api-example: dependencies: '@iracing-data/api-router': @@ -441,19 +552,6 @@ importers: '@iracing-data/api-schema': specifier: workspace:* version: link:../../api/schema - commander: - specifier: ^14.0.0 - version: 14.0.0 - dotenv: - specifier: 16.4.7 - version: 16.4.7 - devDependencies: - '@commander-js/extra-typings': - specifier: ^13.1.0 - version: 13.1.0(commander@14.0.0) - esbuild: - specifier: ^0.25.9 - version: 0.25.9 packages/helpers/sync-telemetry-json-schema: dependencies: @@ -476,25 +574,6 @@ importers: '@iracing-data/api-schema': specifier: workspace:* version: link:../../api/schema - axios: - specifier: ^1.7.9 - version: 1.13.2 - axios-cookiejar-support: - specifier: ^6.0.4 - version: 6.0.4(axios@1.13.2)(tough-cookie@5.1.1) - commander: - specifier: ^14.0.0 - version: 14.0.0 - dotenv: - specifier: 16.4.7 - version: 16.4.7 - tough-cookie: - specifier: ^5.1.1 - version: 5.1.1 - devDependencies: - '@commander-js/extra-typings': - specifier: ^13.1.0 - version: 13.1.0(commander@14.0.0) packages/iracing-telemetry-grpc-node: dependencies: @@ -596,8 +675,8 @@ importers: specifier: ^3.7.0 version: 3.7.0 zod: - specifier: ^4.0.17 - version: 4.0.17 + specifier: ^4.1.12 + version: 4.1.12 packages/oauth/router: dependencies: @@ -629,6 +708,20 @@ packages: js-yaml: 4.1.0 dev: false + /@babel/code-frame@7.27.1: + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + dev: true + + /@babel/helper-validator-identifier@7.28.5: + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/runtime@7.27.0: resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} @@ -680,6 +773,15 @@ packages: dev: true optional: true + /@esbuild/aix-ppc64@0.27.0: + resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.25.9: resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} engines: {node: '>=18'} @@ -689,6 +791,15 @@ packages: dev: true optional: true + /@esbuild/android-arm64@0.27.0: + resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.25.9: resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} engines: {node: '>=18'} @@ -698,6 +809,15 @@ packages: dev: true optional: true + /@esbuild/android-arm@0.27.0: + resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64@0.25.9: resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} engines: {node: '>=18'} @@ -707,6 +827,15 @@ packages: dev: true optional: true + /@esbuild/android-x64@0.27.0: + resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64@0.25.9: resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} engines: {node: '>=18'} @@ -716,6 +845,15 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64@0.27.0: + resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64@0.25.9: resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} engines: {node: '>=18'} @@ -725,6 +863,15 @@ packages: dev: true optional: true + /@esbuild/darwin-x64@0.27.0: + resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64@0.25.9: resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} engines: {node: '>=18'} @@ -734,6 +881,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64@0.27.0: + resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64@0.25.9: resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} engines: {node: '>=18'} @@ -743,6 +899,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64@0.27.0: + resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64@0.25.9: resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} engines: {node: '>=18'} @@ -752,6 +917,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm64@0.27.0: + resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm@0.25.9: resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} engines: {node: '>=18'} @@ -761,6 +935,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm@0.27.0: + resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32@0.25.9: resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} engines: {node: '>=18'} @@ -770,6 +953,15 @@ packages: dev: true optional: true + /@esbuild/linux-ia32@0.27.0: + resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.25.9: resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} engines: {node: '>=18'} @@ -779,6 +971,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64@0.27.0: + resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el@0.25.9: resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} engines: {node: '>=18'} @@ -788,6 +989,15 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el@0.27.0: + resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64@0.25.9: resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} engines: {node: '>=18'} @@ -797,6 +1007,15 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64@0.27.0: + resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64@0.25.9: resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} engines: {node: '>=18'} @@ -806,6 +1025,15 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64@0.27.0: + resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x@0.25.9: resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} engines: {node: '>=18'} @@ -815,6 +1043,15 @@ packages: dev: true optional: true + /@esbuild/linux-s390x@0.27.0: + resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64@0.25.9: resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} engines: {node: '>=18'} @@ -824,6 +1061,15 @@ packages: dev: true optional: true + /@esbuild/linux-x64@0.27.0: + resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-arm64@0.25.9: resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} engines: {node: '>=18'} @@ -833,6 +1079,15 @@ packages: dev: true optional: true + /@esbuild/netbsd-arm64@0.27.0: + resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64@0.25.9: resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} engines: {node: '>=18'} @@ -842,6 +1097,15 @@ packages: dev: true optional: true + /@esbuild/netbsd-x64@0.27.0: + resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-arm64@0.25.9: resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} engines: {node: '>=18'} @@ -851,6 +1115,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-arm64@0.27.0: + resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64@0.25.9: resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} engines: {node: '>=18'} @@ -860,6 +1133,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-x64@0.27.0: + resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openharmony-arm64@0.25.9: resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} engines: {node: '>=18'} @@ -869,6 +1151,15 @@ packages: dev: true optional: true + /@esbuild/openharmony-arm64@0.27.0: + resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64@0.25.9: resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} engines: {node: '>=18'} @@ -878,6 +1169,15 @@ packages: dev: true optional: true + /@esbuild/sunos-x64@0.27.0: + resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64@0.25.9: resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} engines: {node: '>=18'} @@ -887,6 +1187,15 @@ packages: dev: true optional: true + /@esbuild/win32-arm64@0.27.0: + resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32@0.25.9: resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} engines: {node: '>=18'} @@ -896,6 +1205,15 @@ packages: dev: true optional: true + /@esbuild/win32-ia32@0.27.0: + resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64@0.25.9: resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} engines: {node: '>=18'} @@ -905,6 +1223,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64@0.27.0: + resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils@4.7.0(eslint@9.34.0): resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1278,6 +1605,36 @@ packages: /@protobufjs/utf8@1.1.0: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + /@redocly/ajv@8.17.1: + resolution: {integrity: sha512-EDtsGZS964mf9zAUXAl9Ew16eYbeyAFWhsPr0fX6oaJxgd8rApYlPBf0joyhnUHz88WxrigyFtTaqqzXNzPgqw==} + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + dev: true + + /@redocly/config@0.22.2: + resolution: {integrity: sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==} + dev: true + + /@redocly/openapi-core@1.34.5(supports-color@10.2.2): + resolution: {integrity: sha512-0EbE8LRbkogtcCXU7liAyC00n9uNG9hJ+eMyHFdUsy9lB/WGqnEBgwjA9q2cyzAVcdTkQqTBBU1XePNnN3OijA==} + engines: {node: '>=18.17.0', npm: '>=9.5.0'} + dependencies: + '@redocly/ajv': 8.17.1 + '@redocly/config': 0.22.2 + colorette: 1.4.0 + https-proxy-agent: 7.0.6(supports-color@10.2.2) + js-levenshtein: 1.1.6 + js-yaml: 4.1.0 + minimatch: 5.1.6 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - supports-color + dev: true + /@rtsao/scc@1.1.0: resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} dev: true @@ -1291,7 +1648,7 @@ packages: resolution: {integrity: sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==} engines: {node: '>=18'} dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) fflate: 0.8.2 token-types: 6.1.1 transitivePeerDependencies: @@ -1516,7 +1873,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.9.2) '@typescript-eslint/utils': 8.24.1(eslint@9.34.0)(typescript@5.9.2) - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) eslint: 9.34.0 ts-api-utils: 2.0.1(typescript@5.9.2) typescript: 5.9.2 @@ -1561,7 +1918,7 @@ packages: dependencies: '@typescript-eslint/types': 8.24.1 '@typescript-eslint/visitor-keys': 8.24.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -1643,6 +2000,7 @@ packages: /agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} + dev: true /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1653,6 +2011,11 @@ packages: uri-js: 4.4.1 dev: true + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1796,20 +2159,6 @@ packages: possible-typed-array-names: 1.1.0 dev: true - /axios-cookiejar-support@6.0.4(axios@1.13.2)(tough-cookie@5.1.1): - resolution: {integrity: sha512-4Bzj+l63eGwnWDBFdJHeGS6Ij3ytpyqvo//ocsb5kCLN/rKthzk27Afh2iSkZtuudOBkHUWWIcyCb4GKhXqovQ==} - engines: {node: '>=20.0.0'} - peerDependencies: - axios: '>=0.20.0' - tough-cookie: '>=4.0.0' - dependencies: - axios: 1.13.2 - http-cookie-agent: 7.0.2(tough-cookie@5.1.1) - tough-cookie: 5.1.1 - transitivePeerDependencies: - - undici - dev: false - /axios@1.12.2: resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} dependencies: @@ -1883,7 +2232,7 @@ packages: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -1998,6 +2347,10 @@ packages: supports-color: 7.2.0 dev: true + /change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + dev: true + /chardet@2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} dev: true @@ -2048,6 +2401,10 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + dev: true + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: false @@ -2241,7 +2598,7 @@ packages: ms: 2.1.3 dev: true - /debug@4.4.3: + /debug@4.4.3(supports-color@10.2.2): resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: @@ -2251,6 +2608,7 @@ packages: optional: true dependencies: ms: 2.1.3 + supports-color: 10.2.2 /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -2379,6 +2737,7 @@ packages: /dotenv@16.4.7: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} + dev: true /download@8.0.0: resolution: {integrity: sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==} @@ -2579,6 +2938,40 @@ packages: '@esbuild/win32-x64': 0.25.9 dev: true + /esbuild@0.27.0: + resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} + engines: {node: '>=18'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.0 + '@esbuild/android-arm': 0.27.0 + '@esbuild/android-arm64': 0.27.0 + '@esbuild/android-x64': 0.27.0 + '@esbuild/darwin-arm64': 0.27.0 + '@esbuild/darwin-x64': 0.27.0 + '@esbuild/freebsd-arm64': 0.27.0 + '@esbuild/freebsd-x64': 0.27.0 + '@esbuild/linux-arm': 0.27.0 + '@esbuild/linux-arm64': 0.27.0 + '@esbuild/linux-ia32': 0.27.0 + '@esbuild/linux-loong64': 0.27.0 + '@esbuild/linux-mips64el': 0.27.0 + '@esbuild/linux-ppc64': 0.27.0 + '@esbuild/linux-riscv64': 0.27.0 + '@esbuild/linux-s390x': 0.27.0 + '@esbuild/linux-x64': 0.27.0 + '@esbuild/netbsd-arm64': 0.27.0 + '@esbuild/netbsd-x64': 0.27.0 + '@esbuild/openbsd-arm64': 0.27.0 + '@esbuild/openbsd-x64': 0.27.0 + '@esbuild/openharmony-arm64': 0.27.0 + '@esbuild/sunos-x64': 0.27.0 + '@esbuild/win32-arm64': 0.27.0 + '@esbuild/win32-ia32': 0.27.0 + '@esbuild/win32-x64': 0.27.0 + dev: true + /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -2849,7 +3242,7 @@ packages: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -2928,6 +3321,10 @@ packages: /fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + /fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + dev: true + /fastq@1.19.0: resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} dependencies: @@ -3031,7 +3428,7 @@ packages: resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} engines: {node: '>= 0.8'} dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -3228,7 +3625,7 @@ packages: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color dev: true @@ -3375,20 +3772,6 @@ packages: resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} dev: true - /http-cookie-agent@7.0.2(tough-cookie@5.1.1): - resolution: {integrity: sha512-aHaES6SOFtnSlmWu0yEaaQvu+QexUG2gscSAvMhJ7auzW8r/jYOgGrzuAm9G9nHbksuhz7Lw4zOwDHmfQaxZvw==} - engines: {node: '>=20.0.0'} - peerDependencies: - tough-cookie: ^4.0.0 || ^5.0.0 - undici: ^7.0.0 - peerDependenciesMeta: - undici: - optional: true - dependencies: - agent-base: 7.1.4 - tough-cookie: 5.1.1 - dev: false - /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -3405,17 +3788,17 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color dev: true - /https-proxy-agent@7.0.6: + /https-proxy-agent@7.0.6(supports-color@10.2.2): resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color dev: true @@ -3456,6 +3839,11 @@ packages: engines: {node: '>=0.8.19'} dev: true + /index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + dev: true + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3767,6 +4155,15 @@ packages: engines: {node: '>=10'} dev: false + /js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -3801,6 +4198,10 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -4052,6 +4453,13 @@ packages: brace-expansion: 1.1.12 dev: true + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.2 + dev: true + /minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -4192,6 +4600,31 @@ packages: mimic-fn: 2.1.0 dev: true + /openapi-fetch@0.15.0: + resolution: {integrity: sha512-OjQUdi61WO4HYhr9+byCPMj0+bgste/LtSBEcV6FzDdONTs7x0fWn8/ndoYwzqCsKWIxEZwo4FN/TG1c1rI8IQ==} + dependencies: + openapi-typescript-helpers: 0.0.15 + dev: false + + /openapi-typescript-helpers@0.0.15: + resolution: {integrity: sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==} + dev: false + + /openapi-typescript@7.10.1(typescript@5.9.2): + resolution: {integrity: sha512-rBcU8bjKGGZQT4K2ekSTY2Q5veOQbVG/lTKZ49DeCyT9z62hM2Vj/LLHjDHC9W7LJG8YMHcdXpRZDqC1ojB/lw==} + hasBin: true + peerDependencies: + typescript: ^5.x + dependencies: + '@redocly/openapi-core': 1.34.5(supports-color@10.2.2) + ansi-colors: 4.1.3 + change-case: 5.4.4 + parse-json: 8.3.0 + supports-color: 10.2.2 + typescript: 5.9.2 + yargs-parser: 21.1.1 + dev: true + /optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -4277,10 +4710,10 @@ packages: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) get-uri: 6.0.5 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + https-proxy-agent: 7.0.6(supports-color@10.2.2) pac-resolver: 7.0.1 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -4306,6 +4739,15 @@ packages: callsites: 3.1.0 dev: true + /parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + dependencies: + '@babel/code-frame': 7.27.1 + index-to-position: 1.2.0 + type-fest: 4.41.0 + dev: true + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -4341,6 +4783,10 @@ packages: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true + /picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + dev: true + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -4424,6 +4870,11 @@ packages: thread-stream: 3.1.0 dev: false + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + /possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -4516,9 +4967,9 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 + https-proxy-agent: 7.0.6(supports-color@10.2.2) lru-cache: 7.18.3 pac-proxy-agent: 7.2.0 proxy-from-env: 1.1.0 @@ -4644,6 +5095,11 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -4690,7 +5146,7 @@ packages: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -4789,7 +5245,7 @@ packages: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -4927,7 +5383,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -5101,6 +5557,10 @@ packages: '@tokenizer/token': 0.3.0 dev: true + /supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -5163,17 +5623,6 @@ packages: picomatch: 4.0.2 dev: false - /tldts-core@6.1.77: - resolution: {integrity: sha512-bCaqm24FPk8OgBkM0u/SrEWJgHnhBWYqeBo6yUmcZJDCHt/IfyWBb+14CXdGi4RInMv4v7eUAin15W0DoA+Ytg==} - dev: false - - /tldts@6.1.77: - resolution: {integrity: sha512-lBpoWgy+kYmuXWQ83+R7LlJCnsd9YW8DGpZSHhrMl4b8Ly/1vzOie3OdtmUJDkKxcgRGOehDu5btKkty+JEe+g==} - hasBin: true - dependencies: - tldts-core: 6.1.77 - dev: false - /to-buffer@1.1.1: resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} dev: true @@ -5199,13 +5648,6 @@ packages: ieee754: 1.2.1 dev: true - /tough-cookie@5.1.1: - resolution: {integrity: sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==} - engines: {node: '>=16'} - dependencies: - tldts: 6.1.77 - dev: false - /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true @@ -5317,6 +5759,11 @@ packages: engines: {node: '>=10'} dev: true + /type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + dev: true + /type-is@2.0.1: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} @@ -5589,6 +6036,10 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + /yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + dev: true + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5631,10 +6082,6 @@ packages: zod: 4.1.12 dev: false - /zod@4.0.17: - resolution: {integrity: sha512-1PHjlYRevNxxdy2JZ8JcNAw7rX8V9P1AKkP+x/xZfxB0K5FYfuV+Ug6P/6NVSR2jHQ+FzDDoDHS04nYUsOIyLQ==} - dev: false - /zod@4.1.12: resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 36c3c5a..a7b6d46 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,5 @@ packages: + - "apps/*" - "examples/*" - "packages/*" - "packages/api/*" diff --git a/tsconfig.json b/tsconfig.json index 22691bc..0368282 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,17 @@ { "include": [], "references": [ - { "path": "./packages/api" }, - { "path": "./packages/api-client" }, - { "path": "./packages/api-router" }, - { "path": "./packages/api-schema" }, - { "path": "./packages/cli" }, + { "path": "./apps/race-events" }, + { "path": "./apps/sync-car-assets-cli" }, + { "path": "./apps/sync-track-assets-cli" }, + { "path": "./examples/iracing-proxy-api-example" }, + { "path": "./examples/kapps-hello-world" }, + { "path": "./examples/player-pit-stop-events" }, + { "path": "./examples/telemetry-client" }, + { "path": "./packages/api/client/axios" }, + { "path": "./packages/api/client/fetch" }, + { "path": "./packages/api/router" }, + { "path": "./packages/api/schema" }, { "path": "./packages/events/car-session-flag-events" }, { "path": "./packages/events/car-track-location-events" }, { "path": "./packages/events/pace-flag-events" }, @@ -20,7 +26,7 @@ { "path": "./packages/helpers/oauth-schema-to-openapi" }, { "path": "./packages/helpers/sync-car-assets" }, { "path": "./packages/helpers/sync-telemetry-json-schema" }, - // { "path": "./packages/helpers/sync-track-assets" }, + { "path": "./packages/helpers/sync-track-assets" }, { "path": "./packages/iracing-telemetry-grpc-node" }, { "path": "./packages/iracing-telemetry-grpc-web" }, { "path": "./packages/iracing-telemetry-http" },