diff --git a/automation/fetchSchemas.ts b/automation/fetchSchemas.ts new file mode 100644 index 0000000..1dd9136 --- /dev/null +++ b/automation/fetchSchemas.ts @@ -0,0 +1,17 @@ +import { $ } from 'utils/shellUtils'; + +async function fetchSchema() { + // https://docs.api.jikan.moe/ + await $('bun openapi-typescript https://raw.githubusercontent.com/jikan-me/jikan-rest/master/storage/api-docs/api-docs.json -o ./src/api/schemas/MALAPI.ts'); + + // https://www.giantbomb.com/forums/api-developers-3017/giant-bomb-openapi-specification-1901269/ + await $('bun openapi-typescript ./src/api/schemas/GiantBomb.json -o ./src/api/schemas/GiantBomb.ts'); + + // https://www.omdbapi.com/swagger.json + await $('bun openapi-typescript ./src/api/schemas/OMDb.json -o ./src/api/schemas/OMDb.ts'); + + // https://github.com/internetarchive/openlibrary-api/blob/main/swagger.yaml + await $('bun openapi-typescript ./src/api/schemas/OpenLibrary.json -o ./src/api/schemas/OpenLibrary.ts'); +} + +await fetchSchema(); diff --git a/bun.lockb b/bun.lockb index 67f6c25..bc729f4 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/eslint.config.mjs b/eslint.config.mjs index 5a0b7d2..8d66d47 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -7,7 +7,7 @@ import * as plugin_import from 'eslint-plugin-import'; export default tseslint.config( { - ignores: ['npm/', 'node_modules/', 'exampleVault/', 'automation/', 'main.js', '*.svelte'], + ignores: ['npm/', 'node_modules/', 'exampleVault/', 'automation/', 'main.js', '*.svelte', 'src/api/schemas/'], }, { files: ['src/**/*.ts'], diff --git a/package.json b/package.json index 3dfa6f7..f45d3bf 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,8 @@ "lint": "eslint --max-warnings=0 src/**", "lint:fix": "eslint --max-warnings=0 --fix src/**", "svelte-check": "svelte-check --compiler-warnings \"unused-export-let:ignore\"", - "check": "bun run format:check && bun run tsc && bun run test", - "check:fix": "bun run format && bun run tsc && bun run test", + "check": "bun run format:check && bun run tsc && bun run lint && bun run svelte-check", + "check:fix": "bun run format && bun run tsc && bun run lint:fix && bun run svelte-check", "release": "bun run automation/release.ts", "stats": "bun run automation/stats.ts" }, @@ -23,26 +23,28 @@ "author": "Moritz Jung", "license": "GPL-3.0", "devDependencies": { - "@popperjs/core": "^2.11.8", + "@happy-dom/global-registrator": "^18.0.1", "@lemons_dev/parsinom": "^0.0.12", - "@happy-dom/global-registrator": "^14.12.3", - "@types/bun": "^1.1.16", - "builtin-modules": "^4.0.0", - "esbuild": "^0.24.2", + "@popperjs/core": "^2.11.8", + "@types/bun": "^1.2.19", + "builtin-modules": "^5.0.0", + "esbuild": "^0.25.8", "esbuild-plugin-copy-watch": "^2.3.1", - "esbuild-svelte": "^0.8.2", - "eslint": "^9.18.0", - "eslint-plugin-import": "^2.31.0", + "esbuild-svelte": "^0.9.3", + "eslint": "^9.32.0", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-only-warn": "^1.1.0", "obsidian": "latest", - "prettier": "^3.4.2", - "prettier-plugin-svelte": "^3.3.3", + "openapi-fetch": "^0.14.0", + "openapi-typescript": "^7.8.0", + "prettier": "^3.6.2", + "prettier-plugin-svelte": "^3.4.0", "string-argv": "^0.3.2", - "svelte": "^5.17.5", - "svelte-check": "^4.1.4", + "svelte": "^5.38.0", + "svelte-check": "^4.3.1", "svelte-preprocess": "^6.0.3", "tslib": "^2.8.1", - "typescript": "^5.7.3", - "typescript-eslint": "^8.20.0" + "typescript": "^5.9.2", + "typescript-eslint": "^8.39.0" } } diff --git a/src/api/apis/BoardGameGeekAPI.ts b/src/api/apis/BoardGameGeekAPI.ts index 08c574f..7321883 100644 --- a/src/api/apis/BoardGameGeekAPI.ts +++ b/src/api/apis/BoardGameGeekAPI.ts @@ -5,6 +5,8 @@ import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +// sadly no open api schema available + export class BoardGameGeekAPI extends APIModel { plugin: MediaDbPlugin; @@ -118,6 +120,6 @@ export class BoardGameGeekAPI extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.BoardgameGeekAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.BoardgameGeekAPI_disabledMediaTypes; } } diff --git a/src/api/apis/ComicVineAPI.ts b/src/api/apis/ComicVineAPI.ts index 65fd167..53d9820 100644 --- a/src/api/apis/ComicVineAPI.ts +++ b/src/api/apis/ComicVineAPI.ts @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access */ + import { requestUrl } from 'obsidian'; import { ComicMangaModel } from 'src/models/ComicMangaModel'; import type MediaDbPlugin from '../../main'; @@ -5,6 +7,8 @@ import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +// sadly no open api schema available + export class ComicVineAPI extends APIModel { plugin: MediaDbPlugin; @@ -41,7 +45,7 @@ export class ComicVineAPI extends APIModel { year: result.start_year, dataSource: this.apiName, id: `4050-${result.id}`, - publishers: result.publisher?.name ?? [], + publishers: result.publisher?.name, }), ); } @@ -64,28 +68,32 @@ export class ComicVineAPI extends APIModel { } const data = await fetchData.json; - // console.debug(data); const result = data.results; + const authors = result.people as + | { + name: string; + }[] + | undefined; + return new ComicMangaModel({ type: MediaType.ComicManga, title: result.name, englishTitle: result.name, alternateTitles: result.aliases, plot: result.deck, - year: result.start_year ?? '', + year: result.start_year, dataSource: this.apiName, url: result.site_detail_url, id: `4050-${result.id}`, - authors: result.people?.map((x: any) => x.name) ?? [], + authors: authors?.map(x => x.name), chapters: result.count_of_issues, - image: result.image?.original_url ?? '', + image: result.image?.original_url, released: true, - publishers: result.publisher?.name ?? [], - publishedFrom: result.start_year ?? 'unknown', - publishedTo: 'unknown', + publishers: result.publisher?.name, + publishedFrom: result.start_year, status: result.status, userData: { @@ -96,6 +104,6 @@ export class ComicVineAPI extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.ComicVineAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.ComicVineAPI_disabledMediaTypes; } } diff --git a/src/api/apis/GiantBombAPI.ts b/src/api/apis/GiantBombAPI.ts index a60ccae..3ead34b 100644 --- a/src/api/apis/GiantBombAPI.ts +++ b/src/api/apis/GiantBombAPI.ts @@ -1,9 +1,11 @@ -import { requestUrl } from 'obsidian'; +import createClient from 'openapi-fetch'; +import { obsidianFetch } from 'src/utils/Utils'; import type MediaDbPlugin from '../../main'; import { GameModel } from '../../models/GameModel'; import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +import type { paths } from '../schemas/GiantBomb'; export class GiantBombAPI extends APIModel { plugin: MediaDbPlugin; @@ -18,6 +20,7 @@ export class GiantBombAPI extends APIModel { this.apiUrl = 'https://www.giantbomb.com/api'; this.types = [MediaType.Game]; } + async searchByTitle(title: string): Promise { console.log(`MDB | api "${this.apiName}" queried by Title`); @@ -25,35 +28,42 @@ export class GiantBombAPI extends APIModel { throw Error(`MDB | API key for ${this.apiName} missing.`); } - const searchUrl = `${this.apiUrl}/games?api_key=${this.plugin.settings.GiantBombKey}&filter=name:${encodeURIComponent(title)}&format=json`; - const fetchData = await requestUrl({ - url: searchUrl, + const client = createClient({ baseUrl: 'https://www.giantbomb.com/api/' }); + const response = await client.GET('/games', { + params: { + query: { + api_key: this.plugin.settings.GiantBombKey, + filter: `name:${encodeURIComponent(title)}`, + format: 'json', + limit: 20, + }, + }, + fetch: obsidianFetch, }); - // console.debug(fetchData); - - if (fetchData.status === 401) { + if (response.response.status === 401) { throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`); } - if (fetchData.status === 429) { + if (response.response.status === 429) { throw Error(`MDB | Too many requests for ${this.apiName}, you've exceeded your API quota.`); } - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + if (response.response.status !== 200) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json; - // console.debug(data); + const data = response.data?.results; + const ret: MediaTypeModel[] = []; - for (const result of data.results) { + for (const result of data ?? []) { + const year = result.original_release_date ? new Date(result.original_release_date).getFullYear().toString() : undefined; + ret.push( new GameModel({ - type: MediaType.Game, title: result.name, englishTitle: result.name, - year: new Date(result.original_release_date).getFullYear().toString(), + year: year, dataSource: this.apiName, - id: result.guid, + id: result.guid?.toString(), }), ); } @@ -68,36 +78,79 @@ export class GiantBombAPI extends APIModel { throw Error(`MDB | API key for ${this.apiName} missing.`); } - const searchUrl = `${this.apiUrl}/game/${encodeURIComponent(id)}/?api_key=${this.plugin.settings.GiantBombKey}&format=json`; - const fetchData = await requestUrl({ - url: searchUrl, + const client = createClient({ baseUrl: 'https://www.giantbomb.com/api/' }); + const response = await client.GET('/game/{guid}', { + params: { + path: { + guid: id, + }, + query: { + api_key: this.plugin.settings.GiantBombKey, + format: 'json', + }, + }, + fetch: obsidianFetch, }); - console.debug(fetchData); - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + if (response.response.status === 401) { + throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`); + } + if (response.response.status === 429) { + throw Error(`MDB | Too many requests for ${this.apiName}, you've exceeded your API quota.`); + } + if (response.response.status !== 200) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json; - // console.debug(data); - const result = data.results; + const result = response.data?.results; + + if (!result) { + throw Error(`MDB | No results found for ID ${id} in ${this.apiName}.`); + } + + console.log(result); + + // sadly the only OpenAPI definition I could find doesn't have the right types + const year = result.original_release_date ? new Date(result.original_release_date).getFullYear().toString() : undefined; + const developers = result.developers as + | { + name: string; + }[] + | undefined; + const publishers = result.publishers as + | { + name: string; + }[] + | undefined; + const genres = result.genres as + | { + name: string; + }[] + | undefined; + const image = result.image as + | { + small_url: string; + medium_url: string; + super_url: string; + } + | undefined; return new GameModel({ type: MediaType.Game, title: result.name, englishTitle: result.name, - year: new Date(result.original_release_date).getFullYear().toString(), + year: year, dataSource: this.apiName, url: result.site_detail_url, - id: result.guid, - developers: result.developers?.map((x: any) => x.name) ?? [], - publishers: result.publishers?.map((x: any) => x.name) ?? [], - genres: result.genres?.map((x: any) => x.name) ?? [], + id: result.guid?.toString(), + developers: developers?.map(x => x.name), + publishers: publishers?.map(x => x.name), + genres: genres?.map(x => x.name), onlineRating: 0, - image: result.image?.super_url ?? '', + image: image?.super_url, released: true, - releaseDate: result.original_release_date ?? 'unknown', + releaseDate: result.original_release_date, userData: { played: false, @@ -107,6 +160,6 @@ export class GiantBombAPI extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.GiantBombAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.GiantBombAPI_disabledMediaTypes; } } diff --git a/src/api/apis/MALAPI.ts b/src/api/apis/MALAPI.ts index d85746c..6309a90 100644 --- a/src/api/apis/MALAPI.ts +++ b/src/api/apis/MALAPI.ts @@ -1,9 +1,12 @@ +import createClient from 'openapi-fetch'; +import { isTruthy, obsidianFetch } from 'src/utils/Utils'; import type MediaDbPlugin from '../../main'; import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MovieModel } from '../../models/MovieModel'; import { SeriesModel } from '../../models/SeriesModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +import type { paths } from '../schemas/MALAPI'; export class MALAPI extends APIModel { plugin: MediaDbPlugin; @@ -28,30 +31,42 @@ export class MALAPI extends APIModel { async searchByTitle(title: string): Promise { console.log(`MDB | api "${this.apiName}" queried by Title`); - const searchUrl = `https://api.jikan.moe/v4/anime?q=${encodeURIComponent(title)}&limit=20${this.plugin.settings.sfwFilter ? '&sfw' : ''}`; + const client = createClient({ baseUrl: 'https://api.jikan.moe/v4/' }); - const fetchData = await fetch(searchUrl); - // console.debug(fetchData); - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + const response = await client.GET('/anime', { + params: { + query: { + q: title, + limit: 20, + sfw: this.plugin.settings.sfwFilter ? true : false, + }, + }, + fetch: obsidianFetch, + }); + + if (response.error !== undefined) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json(); - // console.debug(data); + const data = response.data?.data; const ret: MediaTypeModel[] = []; - for (const result of data.data) { - const type = this.typeMappings.get(result.type?.toLowerCase()); + for (const result of data ?? []) { + const resType = result.type?.toLowerCase(); + const type = resType ? this.typeMappings.get(resType) : undefined; + const year = result.year?.toString() ?? result.aired?.prop?.from?.year?.toString() ?? ''; + const id = result.mal_id?.toString(); + if (type === undefined) { ret.push( new MovieModel({ subType: '', title: result.title, englishTitle: result.title_english ?? result.title, - year: result.year ?? result.aired?.prop?.from?.year ?? '', + year, dataSource: this.apiName, - id: result.mal_id, + id, }), ); } @@ -61,9 +76,9 @@ export class MALAPI extends APIModel { subType: type, title: result.title, englishTitle: result.title_english ?? result.title, - year: result.year ?? result.aired?.prop?.from?.year ?? '', + year, dataSource: this.apiName, - id: result.mal_id, + id, }), ); } else if (type === 'series' || type === 'ova') { @@ -72,9 +87,9 @@ export class MALAPI extends APIModel { subType: type, title: result.title, englishTitle: result.title_english ?? result.title, - year: result.year ?? result.aired?.prop?.from?.year ?? '', + year, dataSource: this.apiName, - id: result.mal_id, + id, }), ); } @@ -86,41 +101,52 @@ export class MALAPI extends APIModel { async getById(id: string): Promise { console.log(`MDB | api "${this.apiName}" queried by ID`); - const searchUrl = `https://api.jikan.moe/v4/anime/${encodeURIComponent(id)}/full`; - const fetchData = await fetch(searchUrl); + const client = createClient({ baseUrl: 'https://api.jikan.moe/v4/' }); - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + const response = await client.GET('/anime/{id}/full', { + params: { + path: { + id: id as unknown as number, // This is fine + }, + }, + fetch: obsidianFetch, + }); + + if (response.error !== undefined) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json(); - // console.debug(data); - const result = data.data; + const result = response.data?.data; + + if (result === undefined) { + throw Error(`MDB | No data found for ID ${id} in ${this.apiName}.`); + } + + const resType = result.type?.toLowerCase(); + const type = resType ? this.typeMappings.get(resType) : undefined; + const year = result.year?.toString() ?? result.aired?.prop?.from?.year?.toString(); + const new_id = result.mal_id?.toString(); - const type = this.typeMappings.get(result.type?.toLowerCase()); if (type === undefined) { return new MovieModel({ - subType: '', + subType: undefined, title: result.title, englishTitle: result.title_english ?? result.title, - year: result.year ?? result.aired?.prop?.from?.year ?? '', + year: year, dataSource: this.apiName, url: result.url, - id: result.mal_id, + id: new_id, plot: result.synopsis, - genres: result.genres?.map((x: any) => x.name) ?? [], - director: [], - writer: [], - studio: result.studios?.map((x: any) => x.name).join(', ') ?? 'unknown', - duration: result.duration ?? 'unknown', - onlineRating: result.score ?? 0, - actors: [], - image: result.images?.jpg?.image_url ?? '', + genres: result.genres?.map(x => x.name).filter(isTruthy), + studio: result.studios?.map(x => x.name).filter(isTruthy), + duration: result.duration, + onlineRating: result.score, + image: result.images?.jpg?.image_url, released: true, - premiere: this.plugin.dateFormatter.format(result.aired?.from, this.apiDateFormat) ?? 'unknown', - streamingServices: result.streaming?.map((x: any) => x.name) ?? [], + premiere: this.plugin.dateFormatter.format(result.aired?.from, this.apiDateFormat), + streamingServices: result.streaming?.map(x => x.name).filter(isTruthy), userData: { watched: false, @@ -135,24 +161,21 @@ export class MALAPI extends APIModel { subType: type, title: result.title, englishTitle: result.title_english ?? result.title, - year: result.year ?? result.aired?.prop?.from?.year ?? '', + year: year, dataSource: this.apiName, url: result.url, - id: result.mal_id, + id: new_id, plot: result.synopsis, - genres: result.genres?.map((x: any) => x.name) ?? [], - director: [], - writer: [], - studio: result.studios?.map((x: any) => x.name).join(', ') ?? 'unknown', - duration: result.duration ?? 'unknown', - onlineRating: result.score ?? 0, - actors: [], - image: result.images?.jpg?.image_url ?? '', + genres: result.genres?.map(x => x.name).filter(isTruthy), + studio: result.studios?.map(x => x.name).filter(isTruthy), + duration: result.duration, + onlineRating: result.score, + image: result.images?.jpg?.image_url, released: true, - premiere: this.plugin.dateFormatter.format(result.aired?.from, this.apiDateFormat) ?? 'unknown', - streamingServices: result.streaming?.map((x: any) => x.name) ?? [], + premiere: this.plugin.dateFormatter.format(result.aired?.from, this.apiDateFormat), + streamingServices: result.streaming?.map(x => x.name).filter(isTruthy), userData: { watched: false, @@ -165,24 +188,23 @@ export class MALAPI extends APIModel { subType: type, title: result.title, englishTitle: result.title_english ?? result.title, - year: result.year ?? result.aired?.prop?.from?.year ?? '', + year: year, dataSource: this.apiName, url: result.url, - id: result.mal_id, + id: new_id, plot: result.synopsis, - genres: result.genres?.map((x: any) => x.name) ?? [], - writer: [], - studio: result.studios?.map((x: any) => x.name) ?? [], + genres: result.genres?.map(x => x.name).filter(isTruthy), + studio: result.studios?.map(x => x.name).filter(isTruthy), episodes: result.episodes, - duration: result.duration ?? 'unknown', - onlineRating: result.score ?? 0, - streamingServices: result.streaming?.map((x: any) => x.name) ?? [], - image: result.images?.jpg?.image_url ?? '', + duration: result.duration, + onlineRating: result.score, + streamingServices: result.streaming?.map(x => x.name).filter(isTruthy), + image: result.images?.jpg?.image_url, released: true, - airedFrom: this.plugin.dateFormatter.format(result.aired?.from, this.apiDateFormat) ?? 'unknown', - airedTo: this.plugin.dateFormatter.format(result.aired?.to, this.apiDateFormat) ?? 'unknown', + airedFrom: this.plugin.dateFormatter.format(result.aired?.from, this.apiDateFormat), + airedTo: this.plugin.dateFormatter.format(result.aired?.to, this.apiDateFormat), airing: result.airing, userData: { @@ -196,6 +218,6 @@ export class MALAPI extends APIModel { throw new Error(`MDB | Unknown media type for id ${id}`); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.MALAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.MALAPI_disabledMediaTypes; } } diff --git a/src/api/apis/MALAPIManga.ts b/src/api/apis/MALAPIManga.ts index 138fc8d..83d4732 100644 --- a/src/api/apis/MALAPIManga.ts +++ b/src/api/apis/MALAPIManga.ts @@ -1,12 +1,16 @@ +import createClient from 'openapi-fetch'; +import { isTruthy, obsidianFetch } from 'src/utils/Utils'; import type MediaDbPlugin from '../../main'; import { ComicMangaModel } from '../../models/ComicMangaModel'; import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +import type { paths } from '../schemas/MALAPI'; export class MALAPIManga extends APIModel { plugin: MediaDbPlugin; typeMappings: Map; + apiDateFormat: string = 'YYYY-MM-DDTHH:mm:ssZ'; // ISO constructor(plugin: MediaDbPlugin) { super(); @@ -29,43 +33,55 @@ export class MALAPIManga extends APIModel { async searchByTitle(title: string): Promise { console.log(`MDB | api "${this.apiName}" queried by Title`); - const searchUrl = `https://api.jikan.moe/v4/manga?q=${encodeURIComponent(title)}&limit=20${this.plugin.settings.sfwFilter ? '&sfw' : ''}`; + const client = createClient({ baseUrl: 'https://api.jikan.moe/v4/' }); - const fetchData = await fetch(searchUrl); - // console.debug(fetchData); - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + const response = await client.GET('/manga', { + params: { + query: { + q: title, + limit: 20, + sfw: this.plugin.settings.sfwFilter ? true : false, + }, + }, + fetch: obsidianFetch, + }); + + if (response.error !== undefined) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json(); - // console.debug(data); + const data = response.data?.data; const ret: MediaTypeModel[] = []; - for (const result of data.data) { - const type = this.typeMappings.get(result.type?.toLowerCase()); + for (const result of data ?? []) { + const resType = result.type?.toLowerCase(); + const type = resType ? this.typeMappings.get(resType) : undefined; + const year = result.published?.prop?.from?.year?.toString() ?? ''; + const id = result.mal_id?.toString(); + ret.push( new ComicMangaModel({ subType: type, title: result.title, - plot: result.synopsis, + plot: result.synopsis ?? undefined, englishTitle: result.title_english ?? result.title, - alternateTitles: result.titles?.map((x: any) => x.title) ?? [], - year: result.year ?? result.published?.prop?.from?.year ?? '', + alternateTitles: result.titles?.map(x => x.title).filter(isTruthy), + year: year, dataSource: this.apiName, url: result.url, - id: result.mal_id, + id: id, - genres: result.genres?.map((x: any) => x.name) ?? [], - authors: result.authors?.map((x: any) => x.name) ?? [], + genres: result.genres?.map(x => x.name).filter(isTruthy), + authors: result.authors?.map(x => x.name).filter(isTruthy), chapters: result.chapters, volumes: result.volumes, - onlineRating: result.score ?? 0, - image: result.images?.jpg?.image_url ?? '', + onlineRating: result.score, + image: result.images?.jpg?.image_url, released: true, - publishedFrom: new Date(result.published?.from).toLocaleDateString() ?? 'unknown', - publishedTo: new Date(result.published?.to).toLocaleDateString() ?? 'unknown', + publishedFrom: this.plugin.dateFormatter.format(result.published?.from, this.apiDateFormat), + publishedTo: this.plugin.dateFormatter.format(result.published?.to, this.apiDateFormat), status: result.status, userData: { @@ -83,40 +99,53 @@ export class MALAPIManga extends APIModel { async getById(id: string): Promise { console.log(`MDB | api "${this.apiName}" queried by ID`); - const searchUrl = `https://api.jikan.moe/v4/manga/${encodeURIComponent(id)}/full`; - const fetchData = await fetch(searchUrl); + const client = createClient({ baseUrl: 'https://api.jikan.moe/v4/' }); - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + const response = await client.GET('/manga/{id}/full', { + params: { + path: { + id: id as unknown as number, // This is fine + }, + }, + fetch: obsidianFetch, + }); + + if (response.error !== undefined) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json(); - // console.debug(data); - const result = data.data; + const result = response.data?.data; + + if (!result) { + throw Error(`MDB | No data found for ID ${id} in ${this.apiName}.`); + } + + const resType = result.type?.toLowerCase(); + const type = resType ? this.typeMappings.get(resType) : undefined; + const year = result.published?.prop?.from?.year?.toString() ?? ''; + const new_id = result.mal_id?.toString(); - const type = this.typeMappings.get(result.type?.toLowerCase()); return new ComicMangaModel({ subType: type, title: result.title, + plot: result.synopsis ?? undefined, englishTitle: result.title_english ?? result.title, - alternateTitles: result.titles?.map((x: any) => x.title) ?? [], - year: result.year ?? result.published?.prop?.from?.year ?? '', + alternateTitles: result.titles?.map(x => x.title).filter(isTruthy), + year: year, dataSource: this.apiName, url: result.url, - id: result.mal_id, + id: new_id, - plot: (result.synopsis ?? 'unknown').replace(/"/g, "'") ?? 'unknown', - genres: result.genres?.map((x: any) => x.name) ?? [], - authors: result.authors?.map((x: any) => x.name) ?? [], + genres: result.genres?.map(x => x.name).filter(isTruthy), + authors: result.authors?.map(x => x.name).filter(isTruthy), chapters: result.chapters, volumes: result.volumes, - onlineRating: result.score ?? 0, - image: result.images?.jpg?.image_url ?? '', + onlineRating: result.score, + image: result.images?.jpg?.image_url, released: true, - publishers: result.serializations?.map((x: any) => x.name) ?? [], - publishedFrom: new Date(result.published?.from).toLocaleDateString() ?? 'unknown', - publishedTo: new Date(result.published?.to).toLocaleDateString() ?? 'unknown', + publishedFrom: this.plugin.dateFormatter.format(result.published?.from, this.apiDateFormat), + publishedTo: this.plugin.dateFormatter.format(result.published?.to, this.apiDateFormat), status: result.status, userData: { @@ -127,6 +156,6 @@ export class MALAPIManga extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.MALAPIManga_disabledMediaTypes as MediaType[]; + return this.plugin.settings.MALAPIManga_disabledMediaTypes; } } diff --git a/src/api/apis/MobyGamesAPI.ts b/src/api/apis/MobyGamesAPI.ts index a8f0861..1b8b55d 100644 --- a/src/api/apis/MobyGamesAPI.ts +++ b/src/api/apis/MobyGamesAPI.ts @@ -1,4 +1,5 @@ -import { Notice } from 'obsidian'; +/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument */ + import { requestUrl } from 'obsidian'; import type MediaDbPlugin from '../../main'; import { GameModel } from '../../models/GameModel'; @@ -6,6 +7,10 @@ import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +// sadly no open api schema available + +// TODO: maybe we should remove this API, as it can no longer be tested without paying for an API key + export class MobyGamesAPI extends APIModel { plugin: MediaDbPlugin; apiDateFormat: string = 'YYYY-DD-MM'; @@ -19,6 +24,7 @@ export class MobyGamesAPI extends APIModel { this.apiUrl = 'https://api.mobygames.com/v1'; this.types = [MediaType.Game]; } + async searchByTitle(title: string): Promise { console.log(`MDB | api "${this.apiName}" queried by Title`); @@ -108,6 +114,6 @@ export class MobyGamesAPI extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.MobyGamesAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.MobyGamesAPI_disabledMediaTypes; } } diff --git a/src/api/apis/MusicBrainzAPI.ts b/src/api/apis/MusicBrainzAPI.ts index 022d944..902a4f1 100644 --- a/src/api/apis/MusicBrainzAPI.ts +++ b/src/api/apis/MusicBrainzAPI.ts @@ -6,6 +6,73 @@ import { MediaType } from '../../utils/MediaType'; import { contactEmail, mediaDbVersion, pluginName } from '../../utils/Utils'; import { APIModel } from '../APIModel'; +// sadly no open api schema available + +interface Tag { + name: string; + count: number; +} +interface Genre { + name: string; + count: number; + id: string; + disambiguation: string; +} +interface Release { + id: string; + 'status-id': string; + title: string; + status: string; +} + +interface SearchResponse { + id: string; + 'type-id': string; + score: number; + 'primary-type-id': string; + 'artists-credit-id': string; + count: number; + title: string; + 'first-release-date': string; + 'primary-type': string; + 'artist-credit': { + name: string; + artist: { + id: string; + name: string; + 'short-name': string; + }; + }[]; + releases: Release[]; + tags: Tag[]; +} + +interface IdResponse { + id: string; + tags: Tag[]; + 'primary-type-id': string; + 'artist-credit': { + name: string; + artist: { + tags: Tag[]; + type: string; + id: string; + name: string; + 'short-name': string; + country: string; + }; + }[]; + title: string; + genres: Genre[]; + 'first-release-date': string; + releases: Release[]; + 'primary-type': string; + rating: { + value: number; + 'votes-count': number; + }; +} + export class MusicBrainzAPI extends APIModel { plugin: MediaDbPlugin; @@ -37,7 +104,9 @@ export class MusicBrainzAPI extends APIModel { throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); } - const data = await fetchData.json; + const data = (await fetchData.json) as { + 'release-groups': SearchResponse[]; + }; // console.debug(data); const ret: MediaTypeModel[] = []; @@ -53,7 +122,7 @@ export class MusicBrainzAPI extends APIModel { id: result.id, image: 'https://coverartarchive.org/release-group/' + result.id + '/front', - artists: result['artist-credit'].map((a: any) => a.name), + artists: result['artist-credit'].map(a => a.name), subType: result['primary-type'], }), ); @@ -77,7 +146,7 @@ export class MusicBrainzAPI extends APIModel { throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); } - const result = await fetchData.json; + const result = (await fetchData.json) as IdResponse; return new MusicReleaseModel({ type: 'musicRelease', @@ -89,8 +158,8 @@ export class MusicBrainzAPI extends APIModel { id: result.id, image: 'https://coverartarchive.org/release-group/' + result.id + '/front', - artists: result['artist-credit'].map((a: any) => a.name), - genres: result.genres.map((g: any) => g.name), + artists: result['artist-credit'].map(a => a.name), + genres: result.genres.map(g => g.name), subType: result['primary-type'], rating: result.rating.value * 2, @@ -100,6 +169,6 @@ export class MusicBrainzAPI extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.MusicBrainzAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.MusicBrainzAPI_disabledMediaTypes; } } diff --git a/src/api/apis/OMDbAPI.ts b/src/api/apis/OMDbAPI.ts index 3afe47f..3cac8f9 100644 --- a/src/api/apis/OMDbAPI.ts +++ b/src/api/apis/OMDbAPI.ts @@ -1,4 +1,5 @@ -import { Notice } from 'obsidian'; +import createClient from 'openapi-fetch'; +import { obsidianFetch } from 'src/utils/Utils'; import type MediaDbPlugin from '../../main'; import { GameModel } from '../../models/GameModel'; import type { MediaTypeModel } from '../../models/MediaTypeModel'; @@ -6,6 +7,56 @@ import { MovieModel } from '../../models/MovieModel'; import { SeriesModel } from '../../models/SeriesModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +import type { paths } from '../schemas/OMDb'; + +type SearchResponse = + | { + Response: 'True'; + totalResults: string; + Search: { + Title: string; + Year: string; + Poster: string; + imdbID: string; + Type: string; + }[]; + } + | { + Response: 'False'; + Error: string; + }; + +type IdResponse = + | { + Response: 'True'; + Title: string; + Year: string; + Rated: string; + Released: string; + Runtime: string; + Genre: string; + Director: string; + Writer: string; + Actors: string; + Plot: string; + Language: string; + Country: string; + Awards: string; + Poster: string; + Metascore: string; + imdbRating: string; + imdbVotes: string; + imdbID: string; + Type: string; + DVD: string; + BoxOffice: string; + Production: string; + Website: string; + } + | { + Response: 'False'; + Error: string; + }; export class OMDbAPI extends APIModel { plugin: MediaDbPlugin; @@ -33,24 +84,37 @@ export class OMDbAPI extends APIModel { throw new Error(`MDB | API key for ${this.apiName} missing.`); } - const searchUrl = `https://www.omdbapi.com/?s=${encodeURIComponent(title)}&apikey=${this.plugin.settings.OMDbKey}`; - const fetchData = await fetch(searchUrl); + const client = createClient({ baseUrl: 'https://www.omdbapi.com/' }); - if (fetchData.status === 401) { + const response = await client.GET('/?s', { + params: { + query: { + s: title, + apikey: this.plugin.settings.OMDbKey, + }, + }, + fetch: obsidianFetch, + }); + + if (response.response.status === 401) { throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`); } - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + if (response.response.status !== 200) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json(); + const data = response.data as SearchResponse | undefined; + + if (!data) { + throw Error(`MDB | No data received from ${this.apiName}.`); + } if (data.Response === 'False') { if (data.Error === 'Movie not found!') { return []; } - throw Error(`MDB | Received error from ${this.apiName}: \n${JSON.stringify(data, undefined, 4)}`); + throw Error(`MDB | Received error from ${this.apiName}: ${data.Error}`); } if (!data.Search) { return []; @@ -111,18 +175,30 @@ export class OMDbAPI extends APIModel { throw Error(`MDB | API key for ${this.apiName} missing.`); } - const searchUrl = `https://www.omdbapi.com/?i=${encodeURIComponent(id)}&apikey=${this.plugin.settings.OMDbKey}`; - const fetchData = await fetch(searchUrl); + const client = createClient({ baseUrl: 'https://www.omdbapi.com/' }); - if (fetchData.status === 401) { + const response = await client.GET('/?i', { + params: { + query: { + i: id, + apikey: this.plugin.settings.OMDbKey, + }, + }, + fetch: obsidianFetch, + }); + + if (response.response.status === 401) { throw Error(`MDB | Authentication for ${this.apiName} failed. Check the API key.`); } - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + if (response.response.status !== 200) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const result = await fetchData.json(); - // console.debug(result); + const result = response.data as IdResponse | undefined; + + if (!result) { + throw Error(`MDB | No data received from ${this.apiName}.`); + } if (result.Response === 'False') { throw Error(`MDB | Received error from ${this.apiName}: ${result.Error}`); @@ -130,7 +206,7 @@ export class OMDbAPI extends APIModel { const type = this.typeMappings.get(result.Type.toLowerCase()); if (type === undefined) { - throw Error(`${result.type.toLowerCase()} is an unsupported type.`); + throw Error(`${result.Type.toLowerCase()} is an unsupported type.`); } if (type === 'movie') { @@ -143,19 +219,17 @@ export class OMDbAPI extends APIModel { url: `https://www.imdb.com/title/${result.imdbID}/`, id: result.imdbID, - plot: result.Plot ?? '', - genres: result.Genre?.split(', ') ?? [], - director: result.Director?.split(', ') ?? [], - writer: result.Writer?.split(', ') ?? [], - studio: ['N/A'], - duration: result.Runtime ?? 'unknown', + plot: result.Plot, + genres: result.Genre?.split(', '), + director: result.Director?.split(', '), + writer: result.Writer?.split(', '), + duration: result.Runtime, onlineRating: Number.parseFloat(result.imdbRating ?? 0), - actors: result.Actors?.split(', ') ?? [], - image: result.Poster ? result.Poster.replace('_SX300', '_SX600') : '', + actors: result.Actors?.split(', '), + image: result.Poster.replace('_SX300', '_SX600'), released: true, - streamingServices: [], - premiere: this.plugin.dateFormatter.format(result.Released, this.apiDateFormat) ?? 'unknown', + premiere: this.plugin.dateFormatter.format(result.Released, this.apiDateFormat), userData: { watched: false, @@ -173,21 +247,18 @@ export class OMDbAPI extends APIModel { url: `https://www.imdb.com/title/${result.imdbID}/`, id: result.imdbID, - plot: result.Plot ?? '', - genres: result.Genre?.split(', ') ?? [], - writer: result.Writer?.split(', ') ?? [], + plot: result.Plot, + genres: result.Genre?.split(', '), + writer: result.Writer?.split(', '), studio: [], episodes: 0, - duration: result.Runtime ?? 'unknown', + duration: result.Runtime, onlineRating: Number.parseFloat(result.imdbRating ?? 0), - actors: result.Actors?.split(', ') ?? [], - image: result.Poster ? result.Poster.replace('_SX300', '_SX600') : '', + actors: result.Actors?.split(', '), + image: result.Poster.replace('_SX300', '_SX600'), released: true, - streamingServices: [], - airing: false, - airedFrom: this.plugin.dateFormatter.format(result.Released, this.apiDateFormat) ?? 'unknown', - airedTo: 'unknown', + airedFrom: this.plugin.dateFormatter.format(result.Released, this.apiDateFormat), userData: { watched: false, @@ -205,14 +276,12 @@ export class OMDbAPI extends APIModel { url: `https://www.imdb.com/title/${result.imdbID}/`, id: result.imdbID, - developers: [], - publishers: [], - genres: result.Genre?.split(', ') ?? [], + genres: result.Genre?.split(', '), onlineRating: Number.parseFloat(result.imdbRating ?? 0), - image: result.Poster ? result.Poster.replace('_SX300', '_SX600') : '', + image: result.Poster.replace('_SX300', '_SX600'), released: true, - releaseDate: this.plugin.dateFormatter.format(result.Released, this.apiDateFormat) ?? 'unknown', + releaseDate: this.plugin.dateFormatter.format(result.Released, this.apiDateFormat), userData: { played: false, @@ -225,6 +294,6 @@ export class OMDbAPI extends APIModel { } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.OMDbAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.OMDbAPI_disabledMediaTypes; } } diff --git a/src/api/apis/OpenLibraryAPI.ts b/src/api/apis/OpenLibraryAPI.ts index 78eb301..ea729ab 100644 --- a/src/api/apis/OpenLibraryAPI.ts +++ b/src/api/apis/OpenLibraryAPI.ts @@ -1,8 +1,26 @@ +import createClient from 'openapi-fetch'; import { BookModel } from 'src/models/BookModel'; +import { obsidianFetch } from 'src/utils/Utils'; import type MediaDbPlugin from '../../main'; import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +import type { paths } from '../schemas/OpenLibrary'; + +interface SearchResponse { + cover_i: number; + has_fulltext: boolean; + edition_count: number; + title: string; + author_name: string[]; + first_publish_year: number; + key: string; + + number_of_pages_median?: number; + cover_edition_key?: string; + isbn?: string[]; + ratings_average?: number; +} export class OpenLibraryAPI extends APIModel { plugin: MediaDbPlugin; @@ -20,14 +38,24 @@ export class OpenLibraryAPI extends APIModel { async searchByTitle(title: string): Promise { console.log(`MDB | api "${this.apiName}" queried by Title`); - const searchUrl = `https://openlibrary.org/search.json?title=${encodeURIComponent(title)}`; + const client = createClient({ baseUrl: 'https://openlibrary.org/' }); - const fetchData = await fetch(searchUrl); - // console.debug(fetchData); - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + const response = await client.GET('/search.json', { + params: { + query: { + q: title, + }, + }, + fetch: obsidianFetch, + }); + + if (response.error !== undefined) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json(); + + const data = response.data as { + docs: SearchResponse[]; + }; // console.debug(data); @@ -37,11 +65,11 @@ export class OpenLibraryAPI extends APIModel { ret.push( new BookModel({ title: result.title, - englishTitle: result.title_english ?? result.title, - year: result.first_publish_year, + englishTitle: result.title, + year: result.first_publish_year.toString(), dataSource: this.apiName, id: result.key, - author: result.author_name ?? 'unknown', + author: result.author_name.join(', '), }), ); } @@ -52,33 +80,47 @@ export class OpenLibraryAPI extends APIModel { async getById(id: string): Promise { console.log(`MDB | api "${this.apiName}" queried by ID`); - const searchUrl = `https://openlibrary.org/search.json?q=key:${encodeURIComponent(id)}`; - const fetchData = await fetch(searchUrl); - // console.debug(fetchData); + const client = createClient({ baseUrl: 'https://openlibrary.org/' }); - if (fetchData.status !== 200) { - throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); + const response = await client.GET('/search.json', { + params: { + query: { + q: `key:${id}`, + fields: 'key,title,author_name,number_of_pages_median,first_publish_year,isbn,ratings_score,first_sentence,title_suggest,rating*,cover_edition_key', + }, + }, + fetch: obsidianFetch, + }); + + if (response.error !== undefined) { + throw Error(`MDB | Received status code ${response.response.status} from ${this.apiName}.`); } - const data = await fetchData.json(); + const data = response.data as { + docs: SearchResponse[]; + }; + // console.debug(data); const result = data.docs[0]; + const pages = Number(result.number_of_pages_median); + const isbn = Number((result.isbn ?? []).find((el: string) => el.length <= 10)); + const isbn13 = Number((result.isbn ?? []).find((el: string) => el.length == 13)); + return new BookModel({ title: result.title, - year: result.first_publish_year, + year: result.first_publish_year.toString(), dataSource: this.apiName, url: `https://openlibrary.org` + result.key, id: result.key, - isbn: (result.isbn ?? []).find((el: string | any[]) => el.length <= 10) ?? 'unknown', - isbn13: (result.isbn ?? []).find((el: string | any[]) => el.length == 13) ?? 'unknown', - englishTitle: result.title_english ?? result.title, + isbn: Number.isNaN(isbn) ? undefined : isbn, + isbn13: Number.isNaN(isbn13) ? undefined : isbn13, + englishTitle: result.title, - author: result.author_name ?? 'unknown', - plot: result.description ?? 'unknown', - pages: result.number_of_pages_median ?? 'unknown', - onlineRating: Number.parseFloat(Number(result.ratings_average ?? 0).toFixed(2)), - image: `https://covers.openlibrary.org/b/OLID/` + result.cover_edition_key + `-L.jpg`, + author: result.author_name.join(', '), + pages: Number.isNaN(pages) ? undefined : pages, + onlineRating: result.ratings_average, + image: result.cover_edition_key ? `https://covers.openlibrary.org/b/OLID/` + result.cover_edition_key + `-L.jpg` : undefined, released: true, @@ -90,6 +132,6 @@ export class OpenLibraryAPI extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.OpenLibraryAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.OpenLibraryAPI_disabledMediaTypes; } } diff --git a/src/api/apis/SteamAPI.ts b/src/api/apis/SteamAPI.ts index 504cc25..b8e72b2 100644 --- a/src/api/apis/SteamAPI.ts +++ b/src/api/apis/SteamAPI.ts @@ -3,8 +3,128 @@ import type MediaDbPlugin from '../../main'; import { GameModel } from '../../models/GameModel'; import type { MediaTypeModel } from '../../models/MediaTypeModel'; import { MediaType } from '../../utils/MediaType'; -import { APIModel } from '../APIModel'; import { imageUrlExists } from '../../utils/Utils'; +import { APIModel } from '../APIModel'; + +interface SearchResponse { + appid: string; + name: string; + icon: string; + logo: string; +} + +type IdResponse = Record< + string, + { + success: boolean; + data: GameDetails; + } +>; + +interface GameDetails { + type: string; + name: string; + steam_appid: number; + required_age: string; + is_free: boolean; + controller_support: string; + dlc: number[]; + detailed_description: string; + about_the_game: string; + short_description: string; + supported_languages: string; + reviews: string; + header_image: string; + capsule_image: string; + capsule_imagev5: string; + website: string; + pc_requirements: Requirements; + mac_requirements: Requirements; + linux_requirements: Requirements; + legal_notice: string; + drm_notice: string; + developers: string[]; + publishers: string[]; + price_overview: PriceOverview; + packages: number[]; + platforms: Platforms; + metacritic?: { + score: number; + url: string; + }; + categories: Category[]; + genres: Genre[]; + recommendations: { + total: number; + }; + achievements: { + total: number; + highlighted: Achievement[]; + }; + release_date: { + coming_soon: boolean; + date: string; + }; + support_info: { + url: string; + email: string; + }; + background: string; + background_raw: string; + content_descriptors: { + ids: number[]; + notes: string; + }; + ratings: Ratings; +} + +interface Requirements { + minimum: string; + recommended: string; +} + +interface PriceOverview { + currency: string; + initial: number; + final: number; + discount_percent: number; + initial_formatted: string; + final_formatted: string; +} + +interface Platforms { + windows: boolean; + mac: boolean; + linux: boolean; +} + +interface Category { + id: number; + description: string; +} + +interface Genre { + id: string; + description: string; +} + +interface Achievement { + name: string; + path: string; +} + +type Ratings = Record< + string, + { + rating: string; + descriptors: string; + use_age_gate: string; + required_age: string; + rating_id?: string; + banned?: string; + rating_generated?: string; + } +>; export class SteamAPI extends APIModel { plugin: MediaDbPlugin; @@ -35,7 +155,7 @@ export class SteamAPI extends APIModel { throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); } - const data = await fetchData.json; + const data = (await fetchData.json) as SearchResponse[]; // console.debug(data); @@ -70,14 +190,13 @@ export class SteamAPI extends APIModel { } // console.debug(await fetchData.json); + const data = (await fetchData.json) as IdResponse; - let result: any; - for (const [key, value] of Object.entries(await fetchData.json)) { - // console.log(typeof key, key) - // console.log(typeof id, id) + let result: GameDetails | undefined = undefined; + for (const [key, value] of Object.entries(data)) { // after some testing I found out that id is somehow a number despite that it's defined as string... if (key === String(id)) { - result = (value as any).data; + result = value.data; } } if (!result) { @@ -103,16 +222,16 @@ export class SteamAPI extends APIModel { year: new Date(result.release_date.date).getFullYear().toString(), dataSource: this.apiName, url: `https://store.steampowered.com/app/${result.steam_appid}`, - id: result.steam_appid, + id: result.steam_appid.toString(), developers: result.developers, publishers: result.publishers, - genres: result.genres?.map((x: any) => x.description) ?? [], - onlineRating: Number.parseFloat(result.metacritic?.score ?? 0), - image: finalimageurl ?? '', + genres: result.genres?.map(x => x.description), + onlineRating: result.metacritic?.score, + image: finalimageurl, released: !result.release_date?.coming_soon, - releaseDate: this.plugin.dateFormatter.format(result.release_date?.date, this.apiDateFormat) ?? 'unknown', + releaseDate: this.plugin.dateFormatter.format(result.release_date?.date, this.apiDateFormat), userData: { played: false, @@ -121,6 +240,6 @@ export class SteamAPI extends APIModel { }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.SteamAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.SteamAPI_disabledMediaTypes; } } diff --git a/src/api/apis/WikipediaAPI.ts b/src/api/apis/WikipediaAPI.ts index b73382d..9b3b289 100644 --- a/src/api/apis/WikipediaAPI.ts +++ b/src/api/apis/WikipediaAPI.ts @@ -4,6 +4,35 @@ import { WikiModel } from '../../models/WikiModel'; import { MediaType } from '../../utils/MediaType'; import { APIModel } from '../APIModel'; +interface SearchResponse { + query: { + search: { + title: string; + pageid: number; + }[]; + }; +} + +interface IdResponse { + query: { + pages: Record; + }; +} + +interface WikipediaPage { + pageid: number; + title: string; + contentmodel: string; + pagelanguage: string; + pagelanguagehtmlcode: string; + pagelanguagedir: string; + touched: string; // ISO date string + lastrevid: number; + length: number; + fullurl: string; + editurl: string; + canonicalurl: string; +} export class WikipediaAPI extends APIModel { plugin: MediaDbPlugin; apiDateFormat: string = 'YYYY-MM-DDTHH:mm:ssZ'; // ISO @@ -29,7 +58,7 @@ export class WikipediaAPI extends APIModel { throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); } - const data = await fetchData.json(); + const data = (await fetchData.json()) as SearchResponse; console.debug(data); const ret: MediaTypeModel[] = []; @@ -41,7 +70,7 @@ export class WikipediaAPI extends APIModel { englishTitle: result.title, year: '', dataSource: this.apiName, - id: result.pageid, + id: result.pageid.toString(), }), ); } @@ -59,27 +88,25 @@ export class WikipediaAPI extends APIModel { throw Error(`MDB | Received status code ${fetchData.status} from ${this.apiName}.`); } - const data = await fetchData.json(); + const data = (await fetchData.json()) as IdResponse; // console.debug(data); - const result: any = Object.entries(data?.query?.pages)[0][1]; + const result = Object.values(data?.query?.pages)[0]; return new WikiModel({ - type: 'wiki', title: result.title, englishTitle: result.title, - year: '', dataSource: this.apiName, url: result.fullurl, - id: result.pageid, + id: result.pageid.toString(), wikiUrl: result.fullurl, - lastUpdated: this.plugin.dateFormatter.format(result.touched, this.apiDateFormat) ?? undefined, + lastUpdated: this.plugin.dateFormatter.format(result.touched, this.apiDateFormat), length: result.length, userData: {}, }); } getDisabledMediaTypes(): MediaType[] { - return this.plugin.settings.WikipediaAPI_disabledMediaTypes as MediaType[]; + return this.plugin.settings.WikipediaAPI_disabledMediaTypes; } } diff --git a/src/api/schemas/GiantBomb.json b/src/api/schemas/GiantBomb.json new file mode 100644 index 0000000..4b8a13c --- /dev/null +++ b/src/api/schemas/GiantBomb.json @@ -0,0 +1,11226 @@ +{ + "components": { + "parameters": { + "FieldList": { + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "$ref": "#/components/schemas/FieldList" + } + }, + "Filter": { + "description": "The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format)", + "in": "query", + "name": "filter", + "required": false, + "schema": { + "$ref": "#/components/schemas/Filter" + } + }, + "Format": { + "description": "The data format of the response takes either xml, json, or jsonp.", + "in": "query", + "name": "format", + "required": false, + "schema": { + "$ref": "#/components/schemas/Format" + } + }, + "Game": { + "description": "Filter by the ID field on the game resource.", + "in": "query", + "name": "game", + "required": false, + "schema": { + "$ref": "#/components/schemas/GameId" + } + }, + "Limit": { + "description": "The number of results to display per page. This value defaults to 100 and can not exceed this number.", + "in": "query", + "name": "limit", + "required": false, + "schema": { + "$ref": "#/components/schemas/Limit" + } + }, + "Offset": { + "description": "Return results starting with the object at the offset specified.", + "in": "query", + "name": "offset", + "required": false, + "schema": { + "$ref": "#/components/schemas/Offset" + } + }, + "Page": { + "description": "Page number of search results.", + "in": "query", + "name": "page", + "required": false, + "schema": { + "$ref": "#/components/schemas/Page" + } + }, + "Platforms": { + "description": "Filters results by platform. The value passed to this filter should be the ID of the platform to filter results by.", + "in": "query", + "name": "platforms", + "required": false, + "schema": { + "$ref": "#/components/schemas/PlatformId" + } + }, + "Query": { + "description": "The search string.", + "in": "query", + "name": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/Query" + } + }, + "Resources": { + "description": "List of resources to filter results. This filter can accept multiple arguments, each delimited with a \",\". Available options are:
game
franchise
character
concept
object
location
person
company
video", + "explode": false, + "in": "query", + "name": "resources", + "required": false, + "schema": { + "description": "##ENTER##", + "items": { + "$ref": "#/components/schemas/ResourceType" + }, + "type": "array" + }, + "style": "form" + }, + "Sort": { + "description": "The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc.", + "in": "query", + "name": "sort", + "required": false, + "schema": { + "$ref": "#/components/schemas/Sort" + } + }, + "SubscriberOnly": { + "description": "##ENTER##", + "in": "query", + "name": "subscriber_only", + "required": false, + "schema": { + "$ref": "#/components/schemas/SubscriberOnly" + } + }, + "TimeToSave": { + "description": "The number of seconds into the video the current user is", + "in": "query", + "name": "time_to_save", + "required": false, + "schema": { + "$ref": "#/components/schemas/TimeToSave" + } + }, + "VideoId": { + "description": "Id of the video", + "in": "query", + "name": "video_id", + "required": false, + "schema": { + "$ref": "#/components/schemas/VideoId" + } + } + }, + "responses": { + "InvalidAPIKey": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InvalidAPIKey" + } + }, + "application/jsonp": { + "schema": { + "$ref": "#/components/schemas/InvalidAPIKey" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/InvalidAPIKey" + } + } + }, + "description": "##ENTER##" + } + }, + "schemas": { + "Accessory": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the accessory detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the accessory was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the accessory was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the accessory.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the accessory.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for accessory.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the accessory.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the accessory.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the accessory.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the accessory on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Accessory.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Accessory" + }, + { + "properties": {} + } + ] + }, + "Character": { + "description": "##ENTER##", + "properties": { + "aliases": { + "description": "List of aliases the character is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the character detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "birthday": { + "description": "Birthday of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the character was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the character was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appeared_in_game": { + "description": "Game where the character made its first appearance.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "gender": { + "description": "Gender of the character. Available options are: Male, Female, Other", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "last_name": { + "description": "Last name of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "real_name": { + "description": "Real name of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the character on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Character.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Character" + }, + { + "properties": { + "concepts": { + "description": "Concepts related to the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "enemies": { + "description": "Enemeis of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "franchises": { + "description": "Franchises related to the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "friends": { + "description": "Friends of the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "games": { + "description": "Games the character has appeared in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "locations": { + "description": "Locations related to the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "objects": { + "description": "Objects related to the character.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "people": { + "description": "People who have worked with the character.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "Chat": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the chat detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "channel_name": { + "description": "Name of the video streaming channel associated with the chat.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the chat.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for chat.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the chat.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the chat.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "password": { + "description": "chat password.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the chat on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "title": { + "description": "Title of the chat.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Chat.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Chat" + }, + { + "properties": {} + } + ] + }, + "Company": { + "description": "##ENTER##", + "properties": { + "abbreviation": { + "description": "Abbreviation of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "aliases": { + "description": "List of aliases the company is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the company detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the company was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_founded": { + "description": "Date the company was founded.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the company was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "location_address": { + "description": "Street address of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "location_city": { + "description": "City the company resides in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "location_country": { + "description": "Country the company resides in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "location_state": { + "description": "State the company resides in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "phone": { + "description": "Phone number of the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the company on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "website": { + "description": "URL to the company website.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Company.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Company" + }, + { + "properties": { + "characters": { + "description": "Characters related to the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "concepts": { + "description": "Concepts related to the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "developed_games": { + "description": "Games the company has developed.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "developer_releases": { + "description": "Releases the company has developed.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "distributor_releases": { + "description": "Releases the company has distributed.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "locations": { + "description": "Locations related to the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "objects": { + "description": "Objects related to the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "people": { + "description": "People who have worked with the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "published_games": { + "description": "Games published by the company.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "publisher_releases": { + "description": "Releases the company has published.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "Concept": { + "description": "##ENTER##", + "properties": { + "aliases": { + "description": "List of aliases the concept is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the concept detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the concept was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the concept was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appeared_in_franchise": { + "description": "Franchise where the concept made its first appearance.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appeared_in_game": { + "description": "Game where the concept made its first appearance.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the concept on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Concept.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Concept" + }, + { + "properties": { + "characters": { + "description": "Characters related to the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "concepts": { + "description": "Concepts related to the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "franchises": { + "description": "Franchises related to the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "games": { + "description": "Games the concept has appeared in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "locations": { + "description": "Locations related to the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "objects": { + "description": "Objects related to the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "people": { + "description": "People who have worked with the concept.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "related_concepts": { + "description": "Other concepts related to the concept.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "CurrentLive": { + "description": "##ENTER##", + "properties": { + "success": { + "description": "##ENTER##", + "type": "integer" + }, + "video": { + "description": "##ENTER##", + "nullable": true, + "properties": { + "image": { + "description": "Thumbnail image of the video", + "example": "##WRONG TYPE##", + "type": "string" + }, + "stream": { + "description": "URL of the stream (HLS format)", + "example": "##WRONG TYPE##", + "type": "string" + }, + "title": { + "description": "Title of the live video", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Dlc": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the dlc detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the dlc was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the dlc was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the dlc.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the dlc.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "game": { + "description": "Game the dlc is for.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for dlc.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the dlc.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the dlc.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the dlc.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "platform": { + "description": "The dlc's platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "release_date": { + "description": "Date of the dlc.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the dlc on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Dlc.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Dlc" + }, + { + "properties": {} + } + ] + }, + "FieldList": { + "description": "##ENTER##", + "type": "array" + }, + "Filter": { + "description": "##ENTER##", + "pattern": "^((\\w+:((\\w+)|(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\|\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}))),?)+$", + "type": "string" + }, + "Format": { + "description": "##ENTER##", + "enum": ["xml", "json", "jsonp"], + "type": "string" + }, + "Franchise": { + "description": "##ENTER##", + "properties": { + "aliases": { + "description": "List of aliases the franchise is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the franchise detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the franchise was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the franchise was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the franchise on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Franchise.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Franchise" + }, + { + "properties": { + "characters": { + "description": "Characters related to the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "concepts": { + "description": "Concepts related to the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "games": { + "description": "Games the franchise has appeared in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "locations": { + "description": "Locations related to the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "objects": { + "description": "Objects related to the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "people": { + "description": "People who have worked with the franchise.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "Game": { + "description": "##ENTER##", + "properties": { + "aliases": { + "description": "List of aliases the game is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the game detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the game was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the game was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_day": { + "description": "Expected day of release. The month is represented numerically. Combine with 'expected_release_month', 'expected_release_year' and 'expected_release_quarter' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_month": { + "description": "Expected month of release. The month is represented numerically. Combine with 'expected_release_day', 'expected_release_quarter' and 'expected_release_year' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_quarter": { + "description": "Expected quarter of release. The quarter is represented numerically, where 1 = Q1, 2 = Q2, 3 = Q3, and 4 = Q4. Combine with 'expected_release_day', 'expected_release_day', 'expected_release_month' and 'expected_release_year' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_year": { + "description": "Expected year of release. Combine with 'expected_release_day', 'expected_release_month' and 'expected_release_quarter' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "number_of_user_reviews": { + "description": "Number of user reviews of the game on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "original_game_rating": { + "description": "Rating of the first release of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "original_release_date": { + "description": "Date the game was first released.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "platforms": { + "description": "The platforms the game exists on.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the game on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Game.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Game" + }, + { + "properties": { + "characters": { + "description": "Characters related to the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "concepts": { + "description": "Concepts related to the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "developers": { + "description": "Companies who developed the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "dlcs": { + "description": "Game DLCs", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appearance_characters": { + "description": "Characters that first appeared in the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appearance_concepts": { + "description": "Concepts that first appeared in the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appearance_locations": { + "description": "Locations that first appeared in the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appearance_objects": { + "description": "Objects that first appeared in the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appearance_people": { + "description": "People that were first credited in the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "franchises": { + "description": "Franchises related to the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "genres": { + "description": "Genres that encompass the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "images": { + "description": "List of images associated to the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "killed_characters": { + "description": "Characters killed in the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "locations": { + "description": "Locations related to the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "objects": { + "description": "Objects related to the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "people": { + "description": "People who have worked with the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "publishers": { + "description": "Companies who published the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "releases": { + "description": "Releases of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "reviews": { + "description": "Staff reviews of the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "similar_games": { + "description": "Other games similar to the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "themes": { + "description": "Themes that encompass the game.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "videos": { + "description": "Videos associated to the game.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "GameId": { + "description": "##ENTER##", + "type": "integer" + }, + "GameRating": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the game_rating detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for game_rating.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the game_rating.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the game_rating.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the game_rating.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "rating_board": { + "description": "Rating board that issues this game_rating.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "GameRating.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/GameRating" + }, + { + "properties": {} + } + ] + }, + "Genre": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the genre detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the genre was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the genre was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the genre.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the genre.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for genre.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the genre.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the genre.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the genre.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the genre on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Genre.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Genre" + }, + { + "properties": {} + } + ] + }, + "GetAllSavedTime": { + "properties": { + "savedTimes": { + "description": "##ENTER##", + "items": { + "description": "##ENTER##", + "properties": { + "savedOn": { + "description": "Time/date the progress was saved", + "example": "##WRONG TYPE##", + "type": "string" + }, + "savedTime": { + "description": "Saved time for this video", + "example": "##WRONG TYPE##", + "type": "string" + }, + "videoId": { + "description": "Id of the video", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "success": { + "description": "##ENTER##", + "type": "integer" + } + }, + "type": "object" + }, + "GetSavedTime": { + "description": "##ENTER##", + "properties": { + "savedTime": { + "description": "Saved time of the video or -1 if no time is saved for this user", + "example": "##WRONG TYPE##", + "type": "string" + }, + "success": { + "description": "##ENTER##", + "type": "integer" + } + }, + "type": "object" + }, + "Image": { + "description": "##ENTER##", + "properties": { + "icon_url": { + "description": "URL to the icon version of the image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tag": { + "description": "Name of image tag for filerting images.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "medium_url": { + "description": "URL to the medium size of the image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "original_url": { + "description": "URL to the original image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "screen_large_url": { + "description": "URL to the large screenshot version of the image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "screen_url": { + "description": "URL to the screenshot version of the image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "small_url": { + "description": "URL to the small version of the image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "super_url": { + "description": "URL to the super sized version of the image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "thumb_url": { + "description": "URL to the thumb-sized version of the image.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "tiny_url": { + "description": "URL to the tiny version of the image.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "InvalidAPIKey": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "error": { + "enum": ["Invalid API Key"] + }, + "results": { + "enum": [[]] + }, + "status_code": { + "enum": [100] + } + } + } + ] + }, + "Limit": { + "description": "##ENTER##", + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "Location": { + "description": "##ENTER##", + "properties": { + "aliases": { + "description": "List of aliases the location is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the location detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the location was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the location was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the location.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the location.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appeared_in_game": { + "description": "Game where the location made its first appearance.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for location.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the location.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the location.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the location.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the location on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Location.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Location" + }, + { + "properties": {} + } + ] + }, + "Object": { + "description": "##ENTER##", + "properties": { + "aliases": { + "description": "List of aliases the object is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the object detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the object was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the object was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_appeared_in_game": { + "description": "Game where the object made its first appearance.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the object on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Object.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Object" + }, + { + "properties": { + "characters": { + "description": "Characters related to the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "companies": { + "description": "Companies related to the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "concepts": { + "description": "Concepts related to the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "franchises": { + "description": "Franchises related to the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "games": { + "description": "Games the object has appeared in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "locations": { + "description": "Locations related to the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "objects": { + "description": "Objects related to the object.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "people": { + "description": "People who have worked with the object.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "Offset": { + "description": "##ENTER##", + "type": "integer" + }, + "Page": { + "description": "##ENTER##", + "type": "integer" + }, + "Person": { + "description": "##ENTER##", + "properties": { + "aliases": { + "description": "List of aliases the person is known by. A \\n (newline) seperates each alias.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the person detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "birth_date": { + "description": "Date the person was born.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "country": { + "description": "Country the person resides in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the person was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the person was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "death_date": { + "description": "Date the person died.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "first_credited_game": { + "description": "Game the person was first credited.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "gender": { + "description": "Gender of the person. Available options are: Male, Female, Other", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "hometown": { + "description": "City or town the person resides in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the person on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Person.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Person" + }, + { + "properties": { + "characters": { + "description": "Characters related to the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "concepts": { + "description": "Concepts related to the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "franchises": { + "description": "Franchises related to the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "games": { + "description": "Games the person has appeared in.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "locations": { + "description": "Locations related to the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "objects": { + "description": "Objects related to the person.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "people": { + "description": "People who have worked with the person.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "Platform": { + "description": "##ENTER##", + "properties": { + "abbreviation": { + "description": "Abbreviation of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the platform detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "company": { + "description": "Company that created the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the platform was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the platform was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image_tags": { + "description": "List of image tags to filter the images endpoint.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "install_base": { + "description": "Approximate number of sold hardware units.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "online_support": { + "description": "Flag indicating whether the platform has online capabilities.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "original_price": { + "description": "Initial price point of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "release_date": { + "description": "Date of the platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the platform on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Platform.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Platform" + }, + { + "properties": {} + } + ] + }, + "PlatformId": { + "description": "##ENTER##", + "type": "integer" + }, + "Promo": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the promo detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the promo was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the promo.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for promo.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the promo.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the promo.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "link": { + "description": "The link that promo points to.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the promo.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "resource_type": { + "allOf": [ + { + "$ref": "#/components/schemas/ResourceType" + }, + { + "description": "The type of resource the promo is pointing towards." + } + ] + }, + "user": { + "description": "Author of the promo.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Promo.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Promo" + }, + { + "properties": {} + } + ] + }, + "Query": { + "description": "##ENTER##", + "type": "string" + }, + "RatingBoard": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the rating_board detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the rating_board was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the rating_board was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the rating_board.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the rating_board.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for rating_board.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the rating_board.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the rating_board.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the rating_board.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the rating_board on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "RatingBoard.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/RatingBoard" + }, + { + "properties": { + "region": { + "description": "Region the rating_board is responsible for.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "Region": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the region detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the region was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the region was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the region.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the region.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for region.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the region.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the region.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the region.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the region on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Region.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Region" + }, + { + "properties": { + "rating_boards": { + "description": "region in the region.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "Release": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the release detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the release was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the release was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_day": { + "description": "\"Expected day of release. The day is represented numerically. Combine with 'expected_release_month', 'expected_release_year' and 'expected_release_quarter' for Giant Bomb's best guess release date of the release. These fields will be empty if the 'release_date' field is set.\"", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_month": { + "description": "\"Expected month of release. The month is represented numerically. Combine with 'expected_release_day', expected_release_quarter' and 'expected_release_year' for Giant Bomb's best guess release date of the release. These fields will be empty if the 'release_date' field is set.\"", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_quarter": { + "description": "Expected quarter of release. The quarter is represented numerically, where 1 = Q1, 2 = Q2, 3 = Q3, and 4 = Q4. Combine with 'expected_release_day', 'expected_release_month' and 'expected_release_year' for Giant Bomb's best guess release date of the release. These fields will be empty if the 'release_date' field is set.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "expected_release_year": { + "description": "Expected year of release. Combine with 'expected_release_day', 'expected_release_month' and 'expected_release_quarter' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'release_date' field is set.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "game": { + "description": "Game the release is for.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "game_rating": { + "description": "Rating of the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "maximum_players": { + "description": "Maximum players", + "example": "##WRONG TYPE##", + "type": "string" + }, + "minimum_players": { + "description": "Minimum players", + "example": "##WRONG TYPE##", + "type": "string" + }, + "multiplayer_features": { + "description": "Multiplayer features", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "platform": { + "description": "The release's platform.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "product_code_type": { + "description": "The type of product code the release has (ex. UPC/A, ISBN-10, EAN-13).", + "example": "##WRONG TYPE##", + "type": "string" + }, + "product_code_value": { + "description": "The release's product code.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "region": { + "description": "Region the release is responsible for.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "release_date": { + "description": "Date of the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "resolutions": { + "description": "Resolutions available", + "example": "##WRONG TYPE##", + "type": "string" + }, + "singleplayer_features": { + "description": "Singleplayer features", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the release on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "sound_systems": { + "description": "Sound systems", + "example": "##WRONG TYPE##", + "type": "string" + }, + "widescreen_support": { + "description": "Widescreen support", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Release.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Release" + }, + { + "properties": { + "developers": { + "description": "Companies who developed the release.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "publishers": { + "description": "Companies who published the release.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "ResourceType": { + "description": "##ENTER##", + "enum": ["game", "franchise", "character", "concept", "object", "location", "person", "company", "video"], + "type": "string" + }, + "Response": { + "description": "##ENTER##", + "properties": { + "error": { + "description": "A text string representing the status_code", + "type": "string" + }, + "limit": { + "description": "The value of the limit filter specified, or 100 if not specified", + "type": "integer" + }, + "number_of_page_results": { + "description": "The number of results on this page", + "type": "integer" + }, + "number_of_total_results": { + "description": "The number of total results matching the filter conditions specified", + "type": "integer" + }, + "offset": { + "description": "The value of the offset filter specified, or 0 if not specified", + "type": "integer" + }, + "results": { + "description": "Zero or more items that match the filters specified", + "type": "string" + }, + "status_code": { + "description": "An integer indicating the result of the request. Acceptable values are:
1:OK
100:Invalid API Key
101:Object Not Found
102:Error in URL Format
103:'jsonp' format requires a 'json_callback' argument
104:Filter Error
105:Subscriber only video is for subscribers only", + "type": "integer" + } + }, + "type": "object", + "xml": { + "name": "response", + "wrapped": true + } + }, + "Review": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the review detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "dlc_name": { + "description": "Name of the Downloadable Content package.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "game": { + "description": "Game the review is for.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "publish_date": { + "description": "Date the review was published on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "release": { + "description": "Release of game for review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "reviewer": { + "description": "Name of the review's author.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "score": { + "description": "The score given to the game on a scale of 1 to 5.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the review on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Review.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Review" + }, + { + "properties": { + "platforms": { + "description": "Platforms the review appeared in.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "SaveTime": { + "description": "##ENTER##", + "properties": { + "message": { + "description": "##ENTER##", + "type": "string" + }, + "success": { + "description": "##ENTER##", + "type": "boolean" + } + }, + "type": "object" + }, + "Search": { + "allOf": [ + { + "oneOf": [ + { + "$ref": "#/components/schemas/Game" + }, + { + "$ref": "#/components/schemas/Franchise" + }, + { + "$ref": "#/components/schemas/Character" + }, + { + "$ref": "#/components/schemas/Concept" + }, + { + "$ref": "#/components/schemas/Object" + }, + { + "$ref": "#/components/schemas/Location" + }, + { + "$ref": "#/components/schemas/Person" + }, + { + "$ref": "#/components/schemas/Company" + }, + { + "$ref": "#/components/schemas/Video" + } + ] + }, + { + "description": "##ENTER##", + "properties": { + "resource_type": { + "allOf": [ + { + "$ref": "#/components/schemas/ResourceType" + }, + { + "description": "The type of resource the result is mapped to. Available options are:
game
franchise
character
concept
object
location
person
company
video" + } + ] + } + }, + "type": "object" + } + ] + }, + "Sort": { + "description": "##ENTER##", + "pattern": "^\\w+:((asc)|(desc))$", + "type": "string" + }, + "SubscriberOnly": { + "description": "##ENTER##", + "type": "boolean" + }, + "Theme": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the theme detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for theme.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the theme.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the theme.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the theme on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Theme.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Theme" + }, + { + "properties": {} + } + ] + }, + "TimeToSave": { + "description": "##ENTER##", + "type": "integer" + }, + "Type": { + "description": "##ENTER##", + "properties": { + "detail_resource_name": { + "description": "The name of the type's detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the type.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "list_resource_name": { + "description": "The name of the type's list resource.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "UserReview": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the user_review detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_added": { + "description": "Date the user_review was added to Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "date_last_updated": { + "description": "Date the user_review was last updated on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the user_review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "description": { + "description": "Description of the user_review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "dlc": { + "description": "DLC being reviewed.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "game": { + "description": "Game being reviewd.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for user_review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the user_review.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "release": { + "description": "Release being reviewed.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "reviewer": { + "description": "Name of the review's author.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "score": { + "description": "The score given to the game on a scale of 1 to 5.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the user_review on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "UserReview.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/UserReview" + }, + { + "properties": {} + } + ] + }, + "Video": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the video detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "associations": { + "description": "Related objects to the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "embed_player": { + "description": "URL for video embed player. To be inserted into an iFrame.
You can add ?autoplay=true to auto-play.
You can add ?time=x where 'x' is an integer between 0 and the length of the video in seconds to start the video at that point.
You can add ?vol=x where 'x' is a decimal between 0 and 1, .75 for example, to set the starting volume.
The above three parameters may be used together. Example: ?time=45&vol=.5&autoplay=true
See http://www.giantbomb.com/api/video-embed-sample/ for more information on using the embed player.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "hd_url": { + "description": "URL to the HD version of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "high_url": { + "description": "URL to the High Res version of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "length_seconds": { + "description": "Length (in seconds) of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "low_url": { + "description": "URL to the Low Res version of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "premium": { + "description": "Premium status of video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "publish_date": { + "description": "Date the video was published on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "saved_time": { + "description": "The time where the user left off watching this video", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the video on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "url": { + "description": "The video's filename.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "user": { + "description": "Author of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "video_categories": { + "description": "Video categories", + "example": "##WRONG TYPE##", + "type": "string" + }, + "video_show": { + "description": "Video show", + "example": "##WRONG TYPE##", + "type": "string" + }, + "video_type": { + "description": "Video category", + "example": "##WRONG TYPE##", + "type": "string" + }, + "youtube_id": { + "description": "Youtube ID for the video.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "Video.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/Video" + }, + { + "properties": { + "crew": { + "description": "Crew of the video.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "hosts": { + "description": "Hosts of the video.", + "example": "##WRONG TYPE##", + "type": "string" + } + } + } + ] + }, + "VideoCategory": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the video_category detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the video_category.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the video_category.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the video_category.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the video_category.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the video_category on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "VideoCategory.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoCategory" + }, + { + "properties": {} + } + ] + }, + "VideoId": { + "description": "##ENTER##", + "type": "integer" + }, + "VideoShow": { + "description": "##ENTER##", + "properties": { + "active": { + "description": "Is this show currently active", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_detail_url": { + "description": "URL pointing to the video_show detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "api_videos_url": { + "description": "Endpoint to retrieve the videos attached to this video_show.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the video_show.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "display_nav": { + "description": "Should this show be displayed in navigation menus", + "example": "##WRONG TYPE##", + "type": "string" + }, + "guid": { + "description": "For use in single item api call for video_show.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the video_show.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "image": { + "description": "Main image of the video_show.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "latest": { + "description": "The latest episode of a video show. Overrides other sorts when used as a sort field.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "logo": { + "description": "Show logo.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "position": { + "description": "Editor ordering.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "premium": { + "description": "Premium status of video_show.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the video_show on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "title": { + "description": "Title of the video_show.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "VideoShow.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoShow" + }, + { + "properties": {} + } + ] + }, + "VideoType": { + "description": "##ENTER##", + "properties": { + "api_detail_url": { + "description": "URL pointing to the video_type detail resource.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "deck": { + "description": "Brief summary of the video_type.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "id": { + "description": "Unique ID of the video_type.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "name": { + "description": "Name of the video_type.", + "example": "##WRONG TYPE##", + "type": "string" + }, + "site_detail_url": { + "description": "URL pointing to the video_type on Giant Bomb.", + "example": "##WRONG TYPE##", + "type": "string" + } + }, + "type": "object" + }, + "VideoType.Detail": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoType" + }, + { + "properties": {} + } + ] + } + }, + "securitySchemes": { + "api_key": { + "in": "query", + "name": "api_key", + "type": "apiKey" + } + } + }, + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/" + }, + "info": { + "description": "##ENTER##", + "title": "Giant Bomb API", + "version": "0.7" + }, + "openapi": "3.0.2", + "paths": { + "/accessories": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Accessory" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Accessory" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Accessory" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/accessory/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Accessory.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Accessory.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Accessory.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/character/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "birthday", + "concepts", + "date_added", + "date_last_updated", + "deck", + "description", + "enemies", + "first_appeared_in_game", + "franchises", + "friends", + "games", + "gender", + "guid", + "id", + "image", + "image_tags", + "last_name", + "locations", + "name", + "objects", + "people", + "real_name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Character.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Character.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Character.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/characters": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "birthday", + "date_added", + "date_last_updated", + "deck", + "description", + "first_appeared_in_game", + "gender", + "guid", + "id", + "image", + "image_tags", + "last_name", + "name", + "real_name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Character" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Character" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Character" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/chat/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "channel_name", "deck", "guid", "id", "image", "password", "site_detail_url", "title"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Chat.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Chat.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Chat.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Live"] + }, + "summary": "##ENTER##" + }, + "/chats": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "channel_name", "deck", "guid", "id", "image", "password", "site_detail_url", "title"], + "type": "string" + } + } + ] + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Chat" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Chat" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Chat" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Live"] + }, + "summary": "##ENTER##" + }, + "/companies": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "abbreviation", + "aliases", + "api_detail_url", + "date_added", + "date_founded", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "image_tags", + "location_address", + "location_city", + "location_country", + "location_state", + "name", + "phone", + "site_detail_url", + "website" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Company" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Company" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Company" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/company/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "abbreviation", + "aliases", + "api_detail_url", + "characters", + "concepts", + "date_added", + "date_founded", + "date_last_updated", + "deck", + "description", + "developed_games", + "developer_releases", + "distributor_releases", + "guid", + "id", + "image", + "image_tags", + "location_address", + "location_city", + "location_country", + "location_state", + "locations", + "name", + "objects", + "people", + "phone", + "published_games", + "publisher_releases", + "site_detail_url", + "website" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Company.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Company.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Company.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/concept/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "characters", + "concepts", + "date_added", + "date_last_updated", + "deck", + "description", + "first_appeared_in_franchise", + "first_appeared_in_game", + "franchises", + "games", + "guid", + "id", + "image", + "image_tags", + "locations", + "name", + "objects", + "people", + "related_concepts", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Concept.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Concept.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Concept.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/concepts": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "first_appeared_in_franchise", + "first_appeared_in_game", + "guid", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Concept" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Concept" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Concept" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/dlc/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "game", + "guid", + "id", + "image", + "name", + "platform", + "release_date", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Dlc.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Dlc.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Dlc.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/dlcs": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "game", + "guid", + "id", + "image", + "name", + "platform", + "release_date", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Platforms" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Dlc" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Dlc" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Dlc" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/franchise/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "characters", + "concepts", + "date_added", + "date_last_updated", + "deck", + "description", + "games", + "guid", + "id", + "image", + "image_tags", + "locations", + "name", + "objects", + "people", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Franchise.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Franchise.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Franchise.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/franchises": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Franchise" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Franchise" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Franchise" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/game_rating/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "guid", "id", "image", "name", "rating_board"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/GameRating.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/GameRating.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/GameRating.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/game_ratings": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "guid", "id", "image", "name", "rating_board"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/GameRating" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/GameRating" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/GameRating" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/game/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "characters", + "concepts", + "date_added", + "date_last_updated", + "deck", + "description", + "developers", + "dlcs", + "expected_release_day", + "expected_release_month", + "expected_release_quarter", + "expected_release_year", + "first_appearance_characters", + "first_appearance_concepts", + "first_appearance_locations", + "first_appearance_objects", + "first_appearance_people", + "franchises", + "genres", + "guid", + "id", + "image", + "image_tags", + "images", + "killed_characters", + "locations", + "name", + "number_of_user_reviews", + "objects", + "original_game_rating", + "original_release_date", + "people", + "platforms", + "publishers", + "releases", + "reviews", + "similar_games", + "site_detail_url", + "themes", + "videos" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Game.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Game.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Game.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/games": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "expected_release_day", + "expected_release_month", + "expected_release_quarter", + "expected_release_year", + "guid", + "id", + "image", + "image_tags", + "name", + "number_of_user_reviews", + "original_game_rating", + "original_release_date", + "platforms", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Platforms" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Game" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Game" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Game" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/genre/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "date_added", "date_last_updated", "deck", "description", "guid", "id", "image", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Genre.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Genre.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Genre.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/genres": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "date_added", "date_last_updated", "deck", "description", "guid", "id", "image", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Genre" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Genre" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Genre" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/images/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "icon_url", + "image_tag", + "medium_url", + "original_url", + "screen_large_url", + "screen_url", + "small_url", + "super_url", + "thumb_url", + "tiny_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Image" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Image" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Image" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/location/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "first_appeared_in_game", + "guid", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Location.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Location.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Location.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/locations": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "first_appeared_in_game", + "guid", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Location" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Location" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Location" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/object/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "characters", + "companies", + "concepts", + "date_added", + "date_last_updated", + "deck", + "description", + "first_appeared_in_game", + "franchises", + "games", + "guid", + "id", + "image", + "image_tags", + "locations", + "name", + "objects", + "people", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Object.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Object.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Object.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/objects": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "first_appeared_in_game", + "guid", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Object" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Object" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Object" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/people": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "birth_date", + "country", + "date_added", + "date_last_updated", + "death_date", + "deck", + "description", + "first_credited_game", + "gender", + "guid", + "hometown", + "id", + "image", + "image_tags", + "name", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Person" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Person" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Person" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/person/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "aliases", + "api_detail_url", + "birth_date", + "characters", + "concepts", + "country", + "date_added", + "date_last_updated", + "death_date", + "deck", + "description", + "first_credited_game", + "franchises", + "games", + "gender", + "guid", + "hometown", + "id", + "image", + "image_tags", + "locations", + "name", + "objects", + "people", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Person.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Person.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Person.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/platform/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "abbreviation", + "api_detail_url", + "company", + "date_added", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "image_tags", + "install_base", + "name", + "online_support", + "original_price", + "release_date", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Platform.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Platform.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Platform.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/platforms": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "abbreviation", + "api_detail_url", + "company", + "date_added", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "image_tags", + "install_base", + "name", + "online_support", + "original_price", + "release_date", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Platform" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Platform" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Platform" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/promo/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "date_added", "deck", "guid", "id", "image", "link", "name", "resource_type", "user"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Promo.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Promo.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Promo.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["General"] + }, + "summary": "##ENTER##" + }, + "/promos": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "date_added", "deck", "guid", "id", "image", "link", "name", "resource_type", "user"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Promo" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Promo" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Promo" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["General"] + }, + "summary": "##ENTER##" + }, + "/rating_board/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "name", + "region", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/RatingBoard.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/RatingBoard.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/RatingBoard.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/rating_boards": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "date_added", "date_last_updated", "deck", "description", "guid", "id", "image", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/RatingBoard" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/RatingBoard" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/RatingBoard" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/region/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "guid", + "id", + "image", + "name", + "rating_boards", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Region.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Region.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Region.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/regions": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "date_added", "date_last_updated", "deck", "description", "guid", "id", "image", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Region" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Region" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Region" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/release/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "developers", + "expected_release_day", + "expected_release_month", + "expected_release_quarter", + "expected_release_year", + "game", + "game_rating", + "guid", + "id", + "image", + "maximum_players", + "minimum_players", + "multiplayer_features", + "name", + "platform", + "product_code_type", + "product_code_value", + "publishers", + "region", + "release_date", + "resolutions", + "singleplayer_features", + "site_detail_url", + "sound_systems", + "widescreen_support" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Release.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Release.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Release.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/releases": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "expected_release_day", + "expected_release_month", + "expected_release_quarter", + "expected_release_year", + "game", + "game_rating", + "guid", + "id", + "image", + "maximum_players", + "minimum_players", + "multiplayer_features", + "name", + "platform", + "product_code_type", + "product_code_value", + "region", + "release_date", + "resolutions", + "singleplayer_features", + "site_detail_url", + "sound_systems", + "widescreen_support" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Platforms" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Release" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Release" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Release" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/review/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "deck", + "description", + "dlc_name", + "game", + "guid", + "id", + "platforms", + "publish_date", + "release", + "reviewer", + "score", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Review.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Review.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Review.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Reviews"] + }, + "summary": "##ENTER##" + }, + "/reviews": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "deck", + "description", + "dlc_name", + "game", + "guid", + "id", + "publish_date", + "release", + "reviewer", + "score", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Review" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Review" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Review" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Reviews"] + }, + "summary": "##ENTER##" + }, + "/search": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "abbreviation", + "aliases", + "api_detail_url", + "associations", + "birth_date", + "birthday", + "country", + "date_added", + "date_founded", + "date_last_updated", + "death_date", + "deck", + "description", + "embed_player", + "expected_release_day", + "expected_release_month", + "expected_release_quarter", + "expected_release_year", + "first_appeared_in_franchise", + "first_appeared_in_game", + "first_credited_game", + "gender", + "guid", + "hd_url", + "high_url", + "hometown", + "id", + "image", + "image_tags", + "last_name", + "length_seconds", + "location_address", + "location_city", + "location_country", + "location_state", + "low_url", + "name", + "number_of_user_reviews", + "original_game_rating", + "original_release_date", + "phone", + "platforms", + "premium", + "publish_date", + "real_name", + "resource_type", + "saved_time", + "site_detail_url", + "url", + "user", + "video_categories", + "video_show", + "video_type", + "website", + "youtube_id" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "The number of results to display per page. This value defaults to 10 and can not exceed this number.", + "in": "query", + "name": "limit", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Limit" + }, + { + "description": "The number of results to display per page. This value defaults to 10 and can not exceed this number.", + "maximum": 10 + } + ] + } + }, + { + "$ref": "#/components/parameters/Page" + }, + { + "$ref": "#/components/parameters/Query" + }, + { + "$ref": "#/components/parameters/Resources" + }, + { + "$ref": "#/components/parameters/SubscriberOnly" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Search" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Search" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Search" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Search"] + }, + "summary": "##ENTER##" + }, + "/theme/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "guid", "id", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Theme.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Theme.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Theme.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/themes": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "guid", "id", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Theme" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Theme" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Theme" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Wiki"] + }, + "summary": "##ENTER##" + }, + "/types": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Type" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Type" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Type" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["General"] + }, + "summary": "##ENTER##" + }, + "/user_review/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "dlc", + "game", + "guid", + "id", + "release", + "reviewer", + "score", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/UserReview.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/UserReview.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/UserReview.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Reviews"] + }, + "summary": "##ENTER##" + }, + "/user_reviews": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "date_added", + "date_last_updated", + "deck", + "description", + "dlc", + "game", + "guid", + "id", + "release", + "reviewer", + "score", + "site_detail_url" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Game" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/UserReview" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/UserReview" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/UserReview" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Reviews"] + }, + "summary": "##ENTER##" + }, + "/video_categories": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "deck", "id", "image", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Sort" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoCategory" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoCategory" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoCategory" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + }, + "/video_category/{id}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "deck", "id", "image", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoCategory.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoCategory.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoCategory.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + }, + "/video_show/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "active", + "api_detail_url", + "api_videos_url", + "deck", + "display_nav", + "guid", + "id", + "image", + "latest", + "logo", + "position", + "premium", + "site_detail_url", + "title" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoShow.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoShow.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoShow.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + }, + "/video_shows": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "active", + "api_detail_url", + "api_videos_url", + "deck", + "display_nav", + "guid", + "id", + "image", + "latest", + "logo", + "position", + "premium", + "site_detail_url", + "title" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoShow" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoShow" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoShow" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + }, + "/video_type/{id}": { + "description": "##ENTER##", + "get": { + "deprecated": true, + "description": "##ENTER##
DEPRECATED: Please use the video_category or the video_show endpoint", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "deck", "id", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoType.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoType.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/VideoType.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "Get a details of a video type", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + }, + "/video_types": { + "description": "##ENTER##", + "get": { + "deprecated": true, + "description": "##ENTER##
DEPRECATED: Please use the video_category or the video_show endpoint", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": ["api_detail_url", "deck", "id", "name", "site_detail_url"], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoType" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoType" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/VideoType" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "Get a list of video types", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + }, + "/video/{guid}": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "associations", + "crew", + "deck", + "embed_player", + "guid", + "hd_url", + "high_url", + "hosts", + "id", + "image", + "length_seconds", + "low_url", + "name", + "premium", + "publish_date", + "saved_time", + "site_detail_url", + "url", + "user", + "video_categories", + "video_show", + "video_type", + "youtube_id" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "description": "##ENTER##", + "in": "path", + "name": "guid", + "required": true, + "schema": { + "description": "##ENTER##", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Video.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Video.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "$ref": "#/components/schemas/Video.Detail" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + }, + "/video/current-live": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CurrentLive" + } + }, + "application/jsonp": { + "schema": { + "$ref": "#/components/schemas/CurrentLive" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/CurrentLive" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "Get the currently running live stream", + "tags": ["Live"] + }, + "summary": "##ENTER##" + }, + "/video/get-all-saved-times": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetAllSavedTime" + } + }, + "application/jsonp": { + "schema": { + "$ref": "#/components/schemas/GetAllSavedTime" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetAllSavedTime" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "Get all the video saved times for the user", + "tags": ["Bookmarks"] + }, + "summary": "##ENTER##" + }, + "/video/get-saved-time": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "$ref": "#/components/parameters/VideoId" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetSavedTime" + } + }, + "application/jsonp": { + "schema": { + "$ref": "#/components/schemas/GetSavedTime" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/GetSavedTime" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "Get the saved time of a video for the user", + "tags": ["Bookmarks"] + }, + "summary": "##ENTER##" + }, + "/video/save-time": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "$ref": "#/components/parameters/VideoId" + }, + { + "$ref": "#/components/parameters/TimeToSave" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SaveTime" + } + }, + "application/jsonp": { + "schema": { + "$ref": "#/components/schemas/SaveTime" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/SaveTime" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "Save the progress time of a video for this user", + "tags": ["Bookmarks"] + }, + "summary": "##ENTER##" + }, + "/videos": { + "description": "##ENTER##", + "get": { + "description": "##ENTER##", + "externalDocs": { + "description": "##ENTER##", + "url": "https://www.giantbomb.com/api/documentation/#ADD" + }, + "parameters": [ + { + "$ref": "#/components/parameters/Format" + }, + { + "description": "List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a \",\"", + "explode": false, + "in": "query", + "name": "field_list", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldList" + }, + { + "items": { + "enum": [ + "api_detail_url", + "associations", + "deck", + "embed_player", + "guid", + "hd_url", + "high_url", + "id", + "image", + "length_seconds", + "low_url", + "name", + "premium", + "publish_date", + "saved_time", + "site_detail_url", + "url", + "user", + "video_categories", + "video_show", + "video_type", + "youtube_id" + ], + "type": "string" + } + } + ] + }, + "style": "form" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/SubscriberOnly" + }, + { + "$ref": "#/components/parameters/Filter" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Video" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/jsonp": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Video" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + }, + "application/xml": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Response" + }, + { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/Video" + }, + "type": "array" + }, + "version": { + "description": "##ENTER##", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + } + ], + "type": "object" + } + } + }, + "description": "##ENTER##" + }, + "401": { + "$ref": "#/components/responses/InvalidAPIKey" + } + }, + "security": [ + { + "api_key": [] + } + ], + "summary": "##ENTER##", + "tags": ["Videos"] + }, + "summary": "##ENTER##" + } + }, + "servers": [ + { + "description": "##ENTER##", + "url": "http://www.giantbomb.com/api/" + } + ], + "tags": [ + { + "description": "##ENTER##", + "name": "General" + }, + { + "description": "##ENTER##", + "name": "Wiki" + }, + { + "description": "##ENTER##", + "name": "Search" + }, + { + "description": "##ENTER##", + "name": "Reviews" + }, + { + "description": "##ENTER##", + "name": "Videos" + }, + { + "description": "##ENTER##", + "name": "Live" + }, + { + "description": "##ENTER##", + "name": "Bookmarks" + } + ] +} diff --git a/src/api/schemas/GiantBomb.ts b/src/api/schemas/GiantBomb.ts new file mode 100644 index 0000000..9d8f4ee --- /dev/null +++ b/src/api/schemas/GiantBomb.ts @@ -0,0 +1,6454 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + '/accessories': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Accessory'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Accessory'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Accessory'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/accessory/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Accessory.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Accessory.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Accessory.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/character/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Character.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Character.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Character.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Character'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Character'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Character'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/chat/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Chat.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Chat.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Chat.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/chats': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Chat'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Chat'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Chat'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/companies': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Company'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Company'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Company'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/company/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Company.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Company.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Company.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/concept/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Concept.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Concept.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Concept.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/concepts': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Concept'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Concept'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Concept'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/dlc/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Dlc.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Dlc.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Dlc.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/dlcs': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description Filters results by platform. The value passed to this filter should be the ID of the platform to filter results by. */ + platforms?: components['parameters']['Platforms']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Dlc'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Dlc'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Dlc'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/franchise/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Franchise.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Franchise.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Franchise.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/franchises': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Franchise'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Franchise'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Franchise'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/game_rating/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['GameRating.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['GameRating.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['GameRating.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/game_ratings': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['GameRating'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['GameRating'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['GameRating'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/game/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Game.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Game.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Game.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/games': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description Filters results by platform. The value passed to this filter should be the ID of the platform to filter results by. */ + platforms?: components['parameters']['Platforms']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Game'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Game'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Game'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/genre/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Genre.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Genre.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Genre.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/genres': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Genre'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Genre'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Genre'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/images/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Image'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Image'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Image'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/location/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Location.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Location.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Location.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/locations': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Location'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Location'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Location'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/object/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Object.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Object.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Object.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/objects': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Object'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Object'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Object'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Person'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Person'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Person'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/person/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Person.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Person.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Person.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/platform/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Platform.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Platform.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Platform.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/platforms': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Platform'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Platform'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Platform'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/promo/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Promo.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Promo.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Promo.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/promos': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Promo'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Promo'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Promo'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/rating_board/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['RatingBoard.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['RatingBoard.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['RatingBoard.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/rating_boards': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['RatingBoard'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['RatingBoard'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['RatingBoard'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/region/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Region.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Region.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Region.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/regions': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Region'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Region'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Region'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/release/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Release.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Release.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Release.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/releases': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description Filters results by platform. The value passed to this filter should be the ID of the platform to filter results by. */ + platforms?: components['parameters']['Platforms']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Release'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Release'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Release'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/review/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Review.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Review.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Review.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/reviews': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Review'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Review'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Review'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/search': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 10 and can not exceed this number. */ + limit?: components['schemas']['Limit'] & unknown; + /** @description Page number of search results. */ + page?: components['parameters']['Page']; + /** @description The search string. */ + query?: components['parameters']['Query']; + /** @description List of resources to filter results. This filter can accept multiple arguments, each delimited with a ",". Available options are:
game
franchise
character
concept
object
location
person
company
video */ + resources?: components['parameters']['Resources']; + /** @description ##ENTER## */ + subscriber_only?: components['parameters']['SubscriberOnly']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Search'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Search'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Search'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/theme/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Theme.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Theme.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Theme.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/themes': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Theme'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Theme'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Theme'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/types': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Type'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Type'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Type'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/user_review/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['UserReview.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['UserReview.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['UserReview.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/user_reviews': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description Filter by the ID field on the game resource. */ + game?: components['parameters']['Game']; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['UserReview'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['UserReview'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['UserReview'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video_categories': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['VideoCategory'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['VideoCategory'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['VideoCategory'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video_category/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['VideoCategory.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['VideoCategory.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['VideoCategory.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video_show/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['VideoShow.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['VideoShow.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['VideoShow.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video_shows': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['VideoShow'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['VideoShow'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['VideoShow'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video_type/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get a details of a video type + * @deprecated + * @description ##ENTER##
DEPRECATED: Please use the video_category or the video_show endpoint + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['VideoType.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['VideoType.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['VideoType.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video_types': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get a list of video types + * @deprecated + * @description ##ENTER##
DEPRECATED: Please use the video_category or the video_show endpoint + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['VideoType'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['VideoType'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['VideoType'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video/{guid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + }; + header?: never; + path: { + /** @description ##ENTER## */ + guid: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Video.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Video.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Video.Detail']; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video/current-live': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get the currently running live stream + * @description ##ENTER## + */ + get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['CurrentLive']; + 'application/jsonp': components['schemas']['CurrentLive']; + 'application/xml': components['schemas']['CurrentLive']; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video/get-all-saved-times': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get all the video saved times for the user + * @description ##ENTER## + */ + get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GetAllSavedTime']; + 'application/jsonp': components['schemas']['GetAllSavedTime']; + 'application/xml': components['schemas']['GetAllSavedTime']; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video/get-saved-time': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get the saved time of a video for the user + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description Id of the video */ + video_id?: components['parameters']['VideoId']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['GetSavedTime']; + 'application/jsonp': components['schemas']['GetSavedTime']; + 'application/xml': components['schemas']['GetSavedTime']; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/video/save-time': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Save the progress time of a video for this user + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description Id of the video */ + video_id?: components['parameters']['VideoId']; + /** @description The number of seconds into the video the current user is */ + time_to_save?: components['parameters']['TimeToSave']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['SaveTime']; + 'application/jsonp': components['schemas']['SaveTime']; + 'application/xml': components['schemas']['SaveTime']; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/videos': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * ##ENTER## + * @description ##ENTER## + */ + get: { + parameters: { + query?: { + /** @description The data format of the response takes either xml, json, or jsonp. */ + format?: components['parameters']['Format']; + /** @description List of field names to include in the response. Use this if you want to reduce the size of the response payload. This filter can accept multiple arguments, each delimited with a "," */ + field_list?: components['schemas']['FieldList'] & unknown; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + limit?: components['parameters']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + offset?: components['parameters']['Offset']; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + sort?: components['parameters']['Sort']; + /** @description ##ENTER## */ + subscriber_only?: components['parameters']['SubscriberOnly']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + filter?: components['parameters']['Filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description ##ENTER## */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['Response'] & { + results?: components['schemas']['Video'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/jsonp': components['schemas']['Response'] & { + results?: components['schemas']['Video'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + 'application/xml': components['schemas']['Response'] & { + results?: components['schemas']['Video'][]; + /** + * @description ##ENTER## + * @example 1.0 + */ + version?: string; + }; + }; + }; + 401: components['responses']['InvalidAPIKey']; + }; + }; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + /** @description ##ENTER## */ + Accessory: { + /** + * @description URL pointing to the accessory detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the accessory was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the accessory was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the accessory. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the accessory. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description For use in single item api call for accessory. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the accessory. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the accessory. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Name of the accessory. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the accessory on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Accessory.Detail': components['schemas']['Accessory'] & unknown; + /** @description ##ENTER## */ + Character: { + /** + * @description List of aliases the character is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the character detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Birthday of the character. + * @example ##WRONG TYPE## + */ + birthday?: string; + /** + * @description Date the character was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the character was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the character. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the character. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Game where the character made its first appearance. + * @example ##WRONG TYPE## + */ + first_appeared_in_game?: string; + /** + * @description Gender of the character. Available options are: Male, Female, Other + * @example ##WRONG TYPE## + */ + gender?: string; + /** + * @description For use in single item api call for character. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the character. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the character. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Last name of the character. + * @example ##WRONG TYPE## + */ + last_name?: string; + /** + * @description Name of the character. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description Real name of the character. + * @example ##WRONG TYPE## + */ + real_name?: string; + /** + * @description URL pointing to the character on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Character.Detail': components['schemas']['Character'] & { + /** + * @description Concepts related to the character. + * @example ##WRONG TYPE## + */ + concepts?: string; + /** + * @description Enemeis of the character. + * @example ##WRONG TYPE## + */ + enemies?: string; + /** + * @description Franchises related to the character. + * @example ##WRONG TYPE## + */ + franchises?: string; + /** + * @description Friends of the character. + * @example ##WRONG TYPE## + */ + friends?: string; + /** + * @description Games the character has appeared in. + * @example ##WRONG TYPE## + */ + games?: string; + /** + * @description Locations related to the character. + * @example ##WRONG TYPE## + */ + locations?: string; + /** + * @description Objects related to the character. + * @example ##WRONG TYPE## + */ + objects?: string; + /** + * @description People who have worked with the character. + * @example ##WRONG TYPE## + */ + people?: string; + }; + /** @description ##ENTER## */ + Chat: { + /** + * @description URL pointing to the chat detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Name of the video streaming channel associated with the chat. + * @example ##WRONG TYPE## + */ + channel_name?: string; + /** + * @description Brief summary of the chat. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description For use in single item api call for chat. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the chat. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the chat. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description chat password. + * @example ##WRONG TYPE## + */ + password?: string; + /** + * @description URL pointing to the chat on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + /** + * @description Title of the chat. + * @example ##WRONG TYPE## + */ + title?: string; + }; + 'Chat.Detail': components['schemas']['Chat'] & unknown; + /** @description ##ENTER## */ + Company: { + /** + * @description Abbreviation of the company. + * @example ##WRONG TYPE## + */ + abbreviation?: string; + /** + * @description List of aliases the company is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the company detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the company was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the company was founded. + * @example ##WRONG TYPE## + */ + date_founded?: string; + /** + * @description Date the company was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the company. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the company. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description For use in single item api call for company. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the company. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the company. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Street address of the company. + * @example ##WRONG TYPE## + */ + location_address?: string; + /** + * @description City the company resides in. + * @example ##WRONG TYPE## + */ + location_city?: string; + /** + * @description Country the company resides in. + * @example ##WRONG TYPE## + */ + location_country?: string; + /** + * @description State the company resides in. + * @example ##WRONG TYPE## + */ + location_state?: string; + /** + * @description Name of the company. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description Phone number of the company. + * @example ##WRONG TYPE## + */ + phone?: string; + /** + * @description URL pointing to the company on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + /** + * @description URL to the company website. + * @example ##WRONG TYPE## + */ + website?: string; + }; + 'Company.Detail': components['schemas']['Company'] & { + /** + * @description Characters related to the company. + * @example ##WRONG TYPE## + */ + characters?: string; + /** + * @description Concepts related to the company. + * @example ##WRONG TYPE## + */ + concepts?: string; + /** + * @description Games the company has developed. + * @example ##WRONG TYPE## + */ + developed_games?: string; + /** + * @description Releases the company has developed. + * @example ##WRONG TYPE## + */ + developer_releases?: string; + /** + * @description Releases the company has distributed. + * @example ##WRONG TYPE## + */ + distributor_releases?: string; + /** + * @description Locations related to the company. + * @example ##WRONG TYPE## + */ + locations?: string; + /** + * @description Objects related to the company. + * @example ##WRONG TYPE## + */ + objects?: string; + /** + * @description People who have worked with the company. + * @example ##WRONG TYPE## + */ + people?: string; + /** + * @description Games published by the company. + * @example ##WRONG TYPE## + */ + published_games?: string; + /** + * @description Releases the company has published. + * @example ##WRONG TYPE## + */ + publisher_releases?: string; + }; + /** @description ##ENTER## */ + Concept: { + /** + * @description List of aliases the concept is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the concept detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the concept was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the concept was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the concept. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the concept. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Franchise where the concept made its first appearance. + * @example ##WRONG TYPE## + */ + first_appeared_in_franchise?: string; + /** + * @description Game where the concept made its first appearance. + * @example ##WRONG TYPE## + */ + first_appeared_in_game?: string; + /** + * @description For use in single item api call for concept. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the concept. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the concept. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Name of the concept. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the concept on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Concept.Detail': components['schemas']['Concept'] & { + /** + * @description Characters related to the concept. + * @example ##WRONG TYPE## + */ + characters?: string; + /** + * @description Concepts related to the concept. + * @example ##WRONG TYPE## + */ + concepts?: string; + /** + * @description Franchises related to the concept. + * @example ##WRONG TYPE## + */ + franchises?: string; + /** + * @description Games the concept has appeared in. + * @example ##WRONG TYPE## + */ + games?: string; + /** + * @description Locations related to the concept. + * @example ##WRONG TYPE## + */ + locations?: string; + /** + * @description Objects related to the concept. + * @example ##WRONG TYPE## + */ + objects?: string; + /** + * @description People who have worked with the concept. + * @example ##WRONG TYPE## + */ + people?: string; + /** + * @description Other concepts related to the concept. + * @example ##WRONG TYPE## + */ + related_concepts?: string; + }; + /** @description ##ENTER## */ + CurrentLive: { + /** @description ##ENTER## */ + success?: number; + /** @description ##ENTER## */ + video?: { + /** + * @description Thumbnail image of the video + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description URL of the stream (HLS format) + * @example ##WRONG TYPE## + */ + stream?: string; + /** + * @description Title of the live video + * @example ##WRONG TYPE## + */ + title?: string; + } | null; + }; + /** @description ##ENTER## */ + Dlc: { + /** + * @description URL pointing to the dlc detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the dlc was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the dlc was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the dlc. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the dlc. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Game the dlc is for. + * @example ##WRONG TYPE## + */ + game?: string; + /** + * @description For use in single item api call for dlc. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the dlc. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the dlc. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Name of the dlc. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description The dlc's platform. + * @example ##WRONG TYPE## + */ + platform?: string; + /** + * @description Date of the dlc. + * @example ##WRONG TYPE## + */ + release_date?: string; + /** + * @description URL pointing to the dlc on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Dlc.Detail': components['schemas']['Dlc'] & unknown; + /** @description ##ENTER## */ + FieldList: unknown[]; + /** @description ##ENTER## */ + Filter: string; + /** + * @description ##ENTER## + * @enum {string} + */ + Format: 'xml' | 'json' | 'jsonp'; + /** @description ##ENTER## */ + Franchise: { + /** + * @description List of aliases the franchise is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the franchise detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the franchise was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the franchise was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the franchise. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the franchise. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description For use in single item api call for franchise. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the franchise. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the franchise. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Name of the franchise. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the franchise on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Franchise.Detail': components['schemas']['Franchise'] & { + /** + * @description Characters related to the franchise. + * @example ##WRONG TYPE## + */ + characters?: string; + /** + * @description Concepts related to the franchise. + * @example ##WRONG TYPE## + */ + concepts?: string; + /** + * @description Games the franchise has appeared in. + * @example ##WRONG TYPE## + */ + games?: string; + /** + * @description Locations related to the franchise. + * @example ##WRONG TYPE## + */ + locations?: string; + /** + * @description Objects related to the franchise. + * @example ##WRONG TYPE## + */ + objects?: string; + /** + * @description People who have worked with the franchise. + * @example ##WRONG TYPE## + */ + people?: string; + }; + /** @description ##ENTER## */ + Game: { + /** + * @description List of aliases the game is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the game detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the game was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the game was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the game. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the game. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Expected day of release. The month is represented numerically. Combine with 'expected_release_month', 'expected_release_year' and 'expected_release_quarter' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set. + * @example ##WRONG TYPE## + */ + expected_release_day?: string; + /** + * @description Expected month of release. The month is represented numerically. Combine with 'expected_release_day', 'expected_release_quarter' and 'expected_release_year' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set. + * @example ##WRONG TYPE## + */ + expected_release_month?: string; + /** + * @description Expected quarter of release. The quarter is represented numerically, where 1 = Q1, 2 = Q2, 3 = Q3, and 4 = Q4. Combine with 'expected_release_day', 'expected_release_day', 'expected_release_month' and 'expected_release_year' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set. + * @example ##WRONG TYPE## + */ + expected_release_quarter?: string; + /** + * @description Expected year of release. Combine with 'expected_release_day', 'expected_release_month' and 'expected_release_quarter' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'original_release_date' field is set. + * @example ##WRONG TYPE## + */ + expected_release_year?: string; + /** + * @description For use in single item api call for game. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the game. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the game. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Name of the game. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description Number of user reviews of the game on Giant Bomb. + * @example ##WRONG TYPE## + */ + number_of_user_reviews?: string; + /** + * @description Rating of the first release of the game. + * @example ##WRONG TYPE## + */ + original_game_rating?: string; + /** + * @description Date the game was first released. + * @example ##WRONG TYPE## + */ + original_release_date?: string; + /** + * @description The platforms the game exists on. + * @example ##WRONG TYPE## + */ + platforms?: string; + /** + * @description URL pointing to the game on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Game.Detail': components['schemas']['Game'] & { + /** + * @description Characters related to the game. + * @example ##WRONG TYPE## + */ + characters?: string; + /** + * @description Concepts related to the game. + * @example ##WRONG TYPE## + */ + concepts?: string; + /** + * @description Companies who developed the game. + * @example ##WRONG TYPE## + */ + developers?: string; + /** + * @description Game DLCs + * @example ##WRONG TYPE## + */ + dlcs?: string; + /** + * @description Characters that first appeared in the game. + * @example ##WRONG TYPE## + */ + first_appearance_characters?: string; + /** + * @description Concepts that first appeared in the game. + * @example ##WRONG TYPE## + */ + first_appearance_concepts?: string; + /** + * @description Locations that first appeared in the game. + * @example ##WRONG TYPE## + */ + first_appearance_locations?: string; + /** + * @description Objects that first appeared in the game. + * @example ##WRONG TYPE## + */ + first_appearance_objects?: string; + /** + * @description People that were first credited in the game. + * @example ##WRONG TYPE## + */ + first_appearance_people?: string; + /** + * @description Franchises related to the game. + * @example ##WRONG TYPE## + */ + franchises?: string; + /** + * @description Genres that encompass the game. + * @example ##WRONG TYPE## + */ + genres?: string; + /** + * @description List of images associated to the game. + * @example ##WRONG TYPE## + */ + images?: string; + /** + * @description Characters killed in the game. + * @example ##WRONG TYPE## + */ + killed_characters?: string; + /** + * @description Locations related to the game. + * @example ##WRONG TYPE## + */ + locations?: string; + /** + * @description Objects related to the game. + * @example ##WRONG TYPE## + */ + objects?: string; + /** + * @description People who have worked with the game. + * @example ##WRONG TYPE## + */ + people?: string; + /** + * @description Companies who published the game. + * @example ##WRONG TYPE## + */ + publishers?: string; + /** + * @description Releases of the game. + * @example ##WRONG TYPE## + */ + releases?: string; + /** + * @description Staff reviews of the game. + * @example ##WRONG TYPE## + */ + reviews?: string; + /** + * @description Other games similar to the game. + * @example ##WRONG TYPE## + */ + similar_games?: string; + /** + * @description Themes that encompass the game. + * @example ##WRONG TYPE## + */ + themes?: string; + /** + * @description Videos associated to the game. + * @example ##WRONG TYPE## + */ + videos?: string; + }; + /** @description ##ENTER## */ + GameId: number; + /** @description ##ENTER## */ + GameRating: { + /** + * @description URL pointing to the game_rating detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description For use in single item api call for game_rating. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the game_rating. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the game_rating. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Name of the game_rating. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description Rating board that issues this game_rating. + * @example ##WRONG TYPE## + */ + rating_board?: string; + }; + 'GameRating.Detail': components['schemas']['GameRating'] & unknown; + /** @description ##ENTER## */ + Genre: { + /** + * @description URL pointing to the genre detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the genre was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the genre was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the genre. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the genre. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description For use in single item api call for genre. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the genre. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the genre. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Name of the genre. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the genre on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Genre.Detail': components['schemas']['Genre'] & unknown; + GetAllSavedTime: { + /** @description ##ENTER## */ + savedTimes?: { + /** + * @description Time/date the progress was saved + * @example ##WRONG TYPE## + */ + savedOn?: string; + /** + * @description Saved time for this video + * @example ##WRONG TYPE## + */ + savedTime?: string; + /** + * @description Id of the video + * @example ##WRONG TYPE## + */ + videoId?: string; + }[]; + /** @description ##ENTER## */ + success?: number; + }; + /** @description ##ENTER## */ + GetSavedTime: { + /** + * @description Saved time of the video or -1 if no time is saved for this user + * @example ##WRONG TYPE## + */ + savedTime?: string; + /** @description ##ENTER## */ + success?: number; + }; + /** @description ##ENTER## */ + Image: { + /** + * @description URL to the icon version of the image. + * @example ##WRONG TYPE## + */ + icon_url?: string; + /** + * @description Name of image tag for filerting images. + * @example ##WRONG TYPE## + */ + image_tag?: string; + /** + * @description URL to the medium size of the image. + * @example ##WRONG TYPE## + */ + medium_url?: string; + /** + * @description URL to the original image. + * @example ##WRONG TYPE## + */ + original_url?: string; + /** + * @description URL to the large screenshot version of the image. + * @example ##WRONG TYPE## + */ + screen_large_url?: string; + /** + * @description URL to the screenshot version of the image. + * @example ##WRONG TYPE## + */ + screen_url?: string; + /** + * @description URL to the small version of the image. + * @example ##WRONG TYPE## + */ + small_url?: string; + /** + * @description URL to the super sized version of the image. + * @example ##WRONG TYPE## + */ + super_url?: string; + /** + * @description URL to the thumb-sized version of the image. + * @example ##WRONG TYPE## + */ + thumb_url?: string; + /** + * @description URL to the tiny version of the image. + * @example ##WRONG TYPE## + */ + tiny_url?: string; + }; + InvalidAPIKey: components['schemas']['Response'] & { + /** @enum {unknown} */ + error?: 'Invalid API Key'; + /** @enum {unknown} */ + results?: never[]; + /** @enum {unknown} */ + status_code?: 100; + }; + /** @description ##ENTER## */ + Limit: number; + /** @description ##ENTER## */ + Location: { + /** + * @description List of aliases the location is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the location detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the location was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the location was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the location. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the location. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Game where the location made its first appearance. + * @example ##WRONG TYPE## + */ + first_appeared_in_game?: string; + /** + * @description For use in single item api call for location. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the location. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the location. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Name of the location. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the location on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Location.Detail': components['schemas']['Location'] & unknown; + /** @description ##ENTER## */ + Object: { + /** + * @description List of aliases the object is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the object detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the object was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the object was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the object. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the object. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Game where the object made its first appearance. + * @example ##WRONG TYPE## + */ + first_appeared_in_game?: string; + /** + * @description For use in single item api call for object. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the object. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the object. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Name of the object. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the object on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Object.Detail': components['schemas']['Object'] & { + /** + * @description Characters related to the object. + * @example ##WRONG TYPE## + */ + characters?: string; + /** + * @description Companies related to the object. + * @example ##WRONG TYPE## + */ + companies?: string; + /** + * @description Concepts related to the object. + * @example ##WRONG TYPE## + */ + concepts?: string; + /** + * @description Franchises related to the object. + * @example ##WRONG TYPE## + */ + franchises?: string; + /** + * @description Games the object has appeared in. + * @example ##WRONG TYPE## + */ + games?: string; + /** + * @description Locations related to the object. + * @example ##WRONG TYPE## + */ + locations?: string; + /** + * @description Objects related to the object. + * @example ##WRONG TYPE## + */ + objects?: string; + /** + * @description People who have worked with the object. + * @example ##WRONG TYPE## + */ + people?: string; + }; + /** @description ##ENTER## */ + Offset: number; + /** @description ##ENTER## */ + Page: number; + /** @description ##ENTER## */ + Person: { + /** + * @description List of aliases the person is known by. A \n (newline) seperates each alias. + * @example ##WRONG TYPE## + */ + aliases?: string; + /** + * @description URL pointing to the person detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the person was born. + * @example ##WRONG TYPE## + */ + birth_date?: string; + /** + * @description Country the person resides in. + * @example ##WRONG TYPE## + */ + country?: string; + /** + * @description Date the person was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the person was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Date the person died. + * @example ##WRONG TYPE## + */ + death_date?: string; + /** + * @description Brief summary of the person. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the person. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Game the person was first credited. + * @example ##WRONG TYPE## + */ + first_credited_game?: string; + /** + * @description Gender of the person. Available options are: Male, Female, Other + * @example ##WRONG TYPE## + */ + gender?: string; + /** + * @description For use in single item api call for person. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description City or town the person resides in. + * @example ##WRONG TYPE## + */ + hometown?: string; + /** + * @description Unique ID of the person. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the person. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Name of the person. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the person on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Person.Detail': components['schemas']['Person'] & { + /** + * @description Characters related to the person. + * @example ##WRONG TYPE## + */ + characters?: string; + /** + * @description Concepts related to the person. + * @example ##WRONG TYPE## + */ + concepts?: string; + /** + * @description Franchises related to the person. + * @example ##WRONG TYPE## + */ + franchises?: string; + /** + * @description Games the person has appeared in. + * @example ##WRONG TYPE## + */ + games?: string; + /** + * @description Locations related to the person. + * @example ##WRONG TYPE## + */ + locations?: string; + /** + * @description Objects related to the person. + * @example ##WRONG TYPE## + */ + objects?: string; + /** + * @description People who have worked with the person. + * @example ##WRONG TYPE## + */ + people?: string; + }; + /** @description ##ENTER## */ + Platform: { + /** + * @description Abbreviation of the platform. + * @example ##WRONG TYPE## + */ + abbreviation?: string; + /** + * @description URL pointing to the platform detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Company that created the platform. + * @example ##WRONG TYPE## + */ + company?: string; + /** + * @description Date the platform was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the platform was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the platform. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the platform. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description For use in single item api call for platform. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the platform. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the platform. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description List of image tags to filter the images endpoint. + * @example ##WRONG TYPE## + */ + image_tags?: string; + /** + * @description Approximate number of sold hardware units. + * @example ##WRONG TYPE## + */ + install_base?: string; + /** + * @description Name of the platform. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description Flag indicating whether the platform has online capabilities. + * @example ##WRONG TYPE## + */ + online_support?: string; + /** + * @description Initial price point of the platform. + * @example ##WRONG TYPE## + */ + original_price?: string; + /** + * @description Date of the platform. + * @example ##WRONG TYPE## + */ + release_date?: string; + /** + * @description URL pointing to the platform on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Platform.Detail': components['schemas']['Platform'] & unknown; + /** @description ##ENTER## */ + PlatformId: number; + /** @description ##ENTER## */ + Promo: { + /** + * @description URL pointing to the promo detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the promo was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Brief summary of the promo. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description For use in single item api call for promo. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the promo. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the promo. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description The link that promo points to. + * @example ##WRONG TYPE## + */ + link?: string; + /** + * @description Name of the promo. + * @example ##WRONG TYPE## + */ + name?: string; + resource_type?: components['schemas']['ResourceType'] & unknown; + /** + * @description Author of the promo. + * @example ##WRONG TYPE## + */ + user?: string; + }; + 'Promo.Detail': components['schemas']['Promo'] & unknown; + /** @description ##ENTER## */ + Query: string; + /** @description ##ENTER## */ + RatingBoard: { + /** + * @description URL pointing to the rating_board detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the rating_board was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the rating_board was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the rating_board. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the rating_board. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description For use in single item api call for rating_board. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the rating_board. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the rating_board. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Name of the rating_board. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the rating_board on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'RatingBoard.Detail': components['schemas']['RatingBoard'] & { + /** + * @description Region the rating_board is responsible for. + * @example ##WRONG TYPE## + */ + region?: string; + }; + /** @description ##ENTER## */ + Region: { + /** + * @description URL pointing to the region detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the region was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the region was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the region. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the region. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description For use in single item api call for region. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the region. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the region. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Name of the region. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the region on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Region.Detail': components['schemas']['Region'] & { + /** + * @description region in the region. + * @example ##WRONG TYPE## + */ + rating_boards?: string; + }; + /** @description ##ENTER## */ + Release: { + /** + * @description URL pointing to the release detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the release was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the release was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the release. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the release. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description "Expected day of release. The day is represented numerically. Combine with 'expected_release_month', 'expected_release_year' and 'expected_release_quarter' for Giant Bomb's best guess release date of the release. These fields will be empty if the 'release_date' field is set." + * @example ##WRONG TYPE## + */ + expected_release_day?: string; + /** + * @description "Expected month of release. The month is represented numerically. Combine with 'expected_release_day', expected_release_quarter' and 'expected_release_year' for Giant Bomb's best guess release date of the release. These fields will be empty if the 'release_date' field is set." + * @example ##WRONG TYPE## + */ + expected_release_month?: string; + /** + * @description Expected quarter of release. The quarter is represented numerically, where 1 = Q1, 2 = Q2, 3 = Q3, and 4 = Q4. Combine with 'expected_release_day', 'expected_release_month' and 'expected_release_year' for Giant Bomb's best guess release date of the release. These fields will be empty if the 'release_date' field is set. + * @example ##WRONG TYPE## + */ + expected_release_quarter?: string; + /** + * @description Expected year of release. Combine with 'expected_release_day', 'expected_release_month' and 'expected_release_quarter' for Giant Bomb's best guess release date of the game. These fields will be empty if the 'release_date' field is set. + * @example ##WRONG TYPE## + */ + expected_release_year?: string; + /** + * @description Game the release is for. + * @example ##WRONG TYPE## + */ + game?: string; + /** + * @description Rating of the release. + * @example ##WRONG TYPE## + */ + game_rating?: string; + /** + * @description For use in single item api call for release. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the release. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the release. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Maximum players + * @example ##WRONG TYPE## + */ + maximum_players?: string; + /** + * @description Minimum players + * @example ##WRONG TYPE## + */ + minimum_players?: string; + /** + * @description Multiplayer features + * @example ##WRONG TYPE## + */ + multiplayer_features?: string; + /** + * @description Name of the release. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description The release's platform. + * @example ##WRONG TYPE## + */ + platform?: string; + /** + * @description The type of product code the release has (ex. UPC/A, ISBN-10, EAN-13). + * @example ##WRONG TYPE## + */ + product_code_type?: string; + /** + * @description The release's product code. + * @example ##WRONG TYPE## + */ + product_code_value?: string; + /** + * @description Region the release is responsible for. + * @example ##WRONG TYPE## + */ + region?: string; + /** + * @description Date of the release. + * @example ##WRONG TYPE## + */ + release_date?: string; + /** + * @description Resolutions available + * @example ##WRONG TYPE## + */ + resolutions?: string; + /** + * @description Singleplayer features + * @example ##WRONG TYPE## + */ + singleplayer_features?: string; + /** + * @description URL pointing to the release on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + /** + * @description Sound systems + * @example ##WRONG TYPE## + */ + sound_systems?: string; + /** + * @description Widescreen support + * @example ##WRONG TYPE## + */ + widescreen_support?: string; + }; + 'Release.Detail': components['schemas']['Release'] & { + /** + * @description Companies who developed the release. + * @example ##WRONG TYPE## + */ + developers?: string; + /** + * @description Companies who published the release. + * @example ##WRONG TYPE## + */ + publishers?: string; + }; + /** + * @description ##ENTER## + * @enum {string} + */ + ResourceType: 'game' | 'franchise' | 'character' | 'concept' | 'object' | 'location' | 'person' | 'company' | 'video'; + /** @description ##ENTER## */ + Response: { + /** @description A text string representing the status_code */ + error?: string; + /** @description The value of the limit filter specified, or 100 if not specified */ + limit?: number; + /** @description The number of results on this page */ + number_of_page_results?: number; + /** @description The number of total results matching the filter conditions specified */ + number_of_total_results?: number; + /** @description The value of the offset filter specified, or 0 if not specified */ + offset?: number; + /** @description Zero or more items that match the filters specified */ + results?: string; + /** @description An integer indicating the result of the request. Acceptable values are:
1:OK
100:Invalid API Key
101:Object Not Found
102:Error in URL Format
103:'jsonp' format requires a 'json_callback' argument
104:Filter Error
105:Subscriber only video is for subscribers only */ + status_code?: number; + }; + /** @description ##ENTER## */ + Review: { + /** + * @description URL pointing to the review detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Brief summary of the review. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the review. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description Name of the Downloadable Content package. + * @example ##WRONG TYPE## + */ + dlc_name?: string; + /** + * @description Game the review is for. + * @example ##WRONG TYPE## + */ + game?: string; + /** + * @description For use in single item api call for review. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the review. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Date the review was published on Giant Bomb. + * @example ##WRONG TYPE## + */ + publish_date?: string; + /** + * @description Release of game for review. + * @example ##WRONG TYPE## + */ + release?: string; + /** + * @description Name of the review's author. + * @example ##WRONG TYPE## + */ + reviewer?: string; + /** + * @description The score given to the game on a scale of 1 to 5. + * @example ##WRONG TYPE## + */ + score?: string; + /** + * @description URL pointing to the review on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Review.Detail': components['schemas']['Review'] & { + /** + * @description Platforms the review appeared in. + * @example ##WRONG TYPE## + */ + platforms?: string; + }; + /** @description ##ENTER## */ + SaveTime: { + /** @description ##ENTER## */ + message?: string; + /** @description ##ENTER## */ + success?: boolean; + }; + Search: ( + | components['schemas']['Game'] + | components['schemas']['Franchise'] + | components['schemas']['Character'] + | components['schemas']['Concept'] + | components['schemas']['Object'] + | components['schemas']['Location'] + | components['schemas']['Person'] + | components['schemas']['Company'] + | components['schemas']['Video'] + ) & { + resource_type?: components['schemas']['ResourceType'] & unknown; + }; + /** @description ##ENTER## */ + Sort: string; + /** @description ##ENTER## */ + SubscriberOnly: boolean; + /** @description ##ENTER## */ + Theme: { + /** + * @description URL pointing to the theme detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description For use in single item api call for theme. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the theme. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Name of the theme. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the theme on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'Theme.Detail': components['schemas']['Theme'] & unknown; + /** @description ##ENTER## */ + TimeToSave: number; + /** @description ##ENTER## */ + Type: { + /** + * @description The name of the type's detail resource. + * @example ##WRONG TYPE## + */ + detail_resource_name?: string; + /** + * @description Unique ID of the type. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description The name of the type's list resource. + * @example ##WRONG TYPE## + */ + list_resource_name?: string; + }; + /** @description ##ENTER## */ + UserReview: { + /** + * @description URL pointing to the user_review detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Date the user_review was added to Giant Bomb. + * @example ##WRONG TYPE## + */ + date_added?: string; + /** + * @description Date the user_review was last updated on Giant Bomb. + * @example ##WRONG TYPE## + */ + date_last_updated?: string; + /** + * @description Brief summary of the user_review. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Description of the user_review. + * @example ##WRONG TYPE## + */ + description?: string; + /** + * @description DLC being reviewed. + * @example ##WRONG TYPE## + */ + dlc?: string; + /** + * @description Game being reviewd. + * @example ##WRONG TYPE## + */ + game?: string; + /** + * @description For use in single item api call for user_review. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the user_review. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Release being reviewed. + * @example ##WRONG TYPE## + */ + release?: string; + /** + * @description Name of the review's author. + * @example ##WRONG TYPE## + */ + reviewer?: string; + /** + * @description The score given to the game on a scale of 1 to 5. + * @example ##WRONG TYPE## + */ + score?: string; + /** + * @description URL pointing to the user_review on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'UserReview.Detail': components['schemas']['UserReview'] & unknown; + /** @description ##ENTER## */ + Video: { + /** + * @description URL pointing to the video detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Related objects to the video. + * @example ##WRONG TYPE## + */ + associations?: string; + /** + * @description Brief summary of the video. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description URL for video embed player. To be inserted into an iFrame.
You can add ?autoplay=true to auto-play.
You can add ?time=x where 'x' is an integer between 0 and the length of the video in seconds to start the video at that point.
You can add ?vol=x where 'x' is a decimal between 0 and 1, .75 for example, to set the starting volume.
The above three parameters may be used together. Example: ?time=45&vol=.5&autoplay=true
See http://www.giantbomb.com/api/video-embed-sample/ for more information on using the embed player. + * @example ##WRONG TYPE## + */ + embed_player?: string; + /** + * @description For use in single item api call for video. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description URL to the HD version of the video. + * @example ##WRONG TYPE## + */ + hd_url?: string; + /** + * @description URL to the High Res version of the video. + * @example ##WRONG TYPE## + */ + high_url?: string; + /** + * @description Unique ID of the video. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the video. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Length (in seconds) of the video. + * @example ##WRONG TYPE## + */ + length_seconds?: string; + /** + * @description URL to the Low Res version of the video. + * @example ##WRONG TYPE## + */ + low_url?: string; + /** + * @description Name of the video. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description Premium status of video. + * @example ##WRONG TYPE## + */ + premium?: string; + /** + * @description Date the video was published on Giant Bomb. + * @example ##WRONG TYPE## + */ + publish_date?: string; + /** + * @description The time where the user left off watching this video + * @example ##WRONG TYPE## + */ + saved_time?: string; + /** + * @description URL pointing to the video on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + /** + * @description The video's filename. + * @example ##WRONG TYPE## + */ + url?: string; + /** + * @description Author of the video. + * @example ##WRONG TYPE## + */ + user?: string; + /** + * @description Video categories + * @example ##WRONG TYPE## + */ + video_categories?: string; + /** + * @description Video show + * @example ##WRONG TYPE## + */ + video_show?: string; + /** + * @description Video category + * @example ##WRONG TYPE## + */ + video_type?: string; + /** + * @description Youtube ID for the video. + * @example ##WRONG TYPE## + */ + youtube_id?: string; + }; + 'Video.Detail': components['schemas']['Video'] & { + /** + * @description Crew of the video. + * @example ##WRONG TYPE## + */ + crew?: string; + /** + * @description Hosts of the video. + * @example ##WRONG TYPE## + */ + hosts?: string; + }; + /** @description ##ENTER## */ + VideoCategory: { + /** + * @description URL pointing to the video_category detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Brief summary of the video_category. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Unique ID of the video_category. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the video_category. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description Name of the video_category. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the video_category on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'VideoCategory.Detail': components['schemas']['VideoCategory'] & unknown; + /** @description ##ENTER## */ + VideoId: number; + /** @description ##ENTER## */ + VideoShow: { + /** + * @description Is this show currently active + * @example ##WRONG TYPE## + */ + active?: string; + /** + * @description URL pointing to the video_show detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Endpoint to retrieve the videos attached to this video_show. + * @example ##WRONG TYPE## + */ + api_videos_url?: string; + /** + * @description Brief summary of the video_show. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Should this show be displayed in navigation menus + * @example ##WRONG TYPE## + */ + display_nav?: string; + /** + * @description For use in single item api call for video_show. + * @example ##WRONG TYPE## + */ + guid?: string; + /** + * @description Unique ID of the video_show. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Main image of the video_show. + * @example ##WRONG TYPE## + */ + image?: string; + /** + * @description The latest episode of a video show. Overrides other sorts when used as a sort field. + * @example ##WRONG TYPE## + */ + latest?: string; + /** + * @description Show logo. + * @example ##WRONG TYPE## + */ + logo?: string; + /** + * @description Editor ordering. + * @example ##WRONG TYPE## + */ + position?: string; + /** + * @description Premium status of video_show. + * @example ##WRONG TYPE## + */ + premium?: string; + /** + * @description URL pointing to the video_show on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + /** + * @description Title of the video_show. + * @example ##WRONG TYPE## + */ + title?: string; + }; + 'VideoShow.Detail': components['schemas']['VideoShow'] & unknown; + /** @description ##ENTER## */ + VideoType: { + /** + * @description URL pointing to the video_type detail resource. + * @example ##WRONG TYPE## + */ + api_detail_url?: string; + /** + * @description Brief summary of the video_type. + * @example ##WRONG TYPE## + */ + deck?: string; + /** + * @description Unique ID of the video_type. + * @example ##WRONG TYPE## + */ + id?: string; + /** + * @description Name of the video_type. + * @example ##WRONG TYPE## + */ + name?: string; + /** + * @description URL pointing to the video_type on Giant Bomb. + * @example ##WRONG TYPE## + */ + site_detail_url?: string; + }; + 'VideoType.Detail': components['schemas']['VideoType'] & unknown; + }; + responses: { + /** @description ##ENTER## */ + InvalidAPIKey: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['InvalidAPIKey']; + 'application/jsonp': components['schemas']['InvalidAPIKey']; + 'application/xml': components['schemas']['InvalidAPIKey']; + }; + }; + }; + parameters: { + FieldList: components['schemas']['FieldList']; + /** @description The result can be filtered by the marked fields in the Fields section below.

Single filter: &filter=field:value
Multiple filters: &filter=field:value,field:value
Date filters: &filter=field:start value|end value (using datetime format) */ + Filter: components['schemas']['Filter']; + /** @description The data format of the response takes either xml, json, or jsonp. */ + Format: components['schemas']['Format']; + /** @description Filter by the ID field on the game resource. */ + Game: components['schemas']['GameId']; + /** @description The number of results to display per page. This value defaults to 100 and can not exceed this number. */ + Limit: components['schemas']['Limit']; + /** @description Return results starting with the object at the offset specified. */ + Offset: components['schemas']['Offset']; + /** @description Page number of search results. */ + Page: components['schemas']['Page']; + /** @description Filters results by platform. The value passed to this filter should be the ID of the platform to filter results by. */ + Platforms: components['schemas']['PlatformId']; + /** @description The search string. */ + Query: components['schemas']['Query']; + /** @description List of resources to filter results. This filter can accept multiple arguments, each delimited with a ",". Available options are:
game
franchise
character
concept
object
location
person
company
video */ + Resources: components['schemas']['ResourceType'][]; + /** @description The result set can be sorted by the marked fields in the Fields section below. Format: &sort=field:direction where direction is either asc or desc. */ + Sort: components['schemas']['Sort']; + /** @description ##ENTER## */ + SubscriberOnly: components['schemas']['SubscriberOnly']; + /** @description The number of seconds into the video the current user is */ + TimeToSave: components['schemas']['TimeToSave']; + /** @description Id of the video */ + VideoId: components['schemas']['VideoId']; + }; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export type operations = Record; diff --git a/src/api/schemas/MALAPI.ts b/src/api/schemas/MALAPI.ts new file mode 100644 index 0000000..7c047f6 --- /dev/null +++ b/src/api/schemas/MALAPI.ts @@ -0,0 +1,6761 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + '/anime/{id}/full': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeFullById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/characters': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeCharacters']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/staff': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeStaff']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/episodes': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeEpisodes']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/episodes/{episode}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeEpisodeById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/news': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeNews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/forum': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeForum']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/videos': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeVideos']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/videos/episodes': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeVideosEpisodes']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/pictures': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimePictures']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/statistics': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeStatistics']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/moreinfo': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeMoreInfo']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/recommendations': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeRecommendations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/userupdates': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeUserUpdates']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/reviews': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeReviews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/relations': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeRelations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/themes': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeThemes']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/external': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeExternal']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime/{id}/streaming': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeStreaming']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters/{id}/full': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getCharacterFullById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getCharacterById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters/{id}/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getCharacterAnime']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters/{id}/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getCharacterManga']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters/{id}/voices': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getCharacterVoiceActors']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters/{id}/pictures': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getCharacterPictures']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/clubs/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getClubsById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/clubs/{id}/members': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getClubMembers']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/clubs/{id}/staff': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getClubStaff']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/clubs/{id}/relations': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getClubRelations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/genres/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeGenres']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/genres/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaGenres']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/magazines': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMagazines']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/full': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaFullById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/characters': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaCharacters']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/news': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaNews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/forum': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaTopics']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/pictures': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaPictures']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/statistics': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaStatistics']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/moreinfo': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaMoreInfo']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/recommendations': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaRecommendations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/userupdates': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaUserUpdates']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/reviews': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaReviews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/relations': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaRelations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga/{id}/external': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaExternal']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people/{id}/full': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getPersonFullById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getPersonById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people/{id}/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getPersonAnime']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people/{id}/voices': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getPersonVoices']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people/{id}/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getPersonManga']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people/{id}/pictures': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getPersonPictures']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/producers/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getProducerById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/producers/{id}/full': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getProducerFullById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/producers/{id}/external': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getProducerExternal']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/random/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRandomAnime']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/random/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRandomManga']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/random/characters': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRandomCharacters']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/random/people': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRandomPeople']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/random/users': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRandomUsers']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/recommendations/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRecentAnimeRecommendations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/recommendations/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRecentMangaRecommendations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/reviews/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRecentAnimeReviews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/reviews/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getRecentMangaReviews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/schedules': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getSchedules']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getAnimeSearch']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getMangaSearch']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/people': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getPeopleSearch']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/characters': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getCharactersSearch']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUsersSearch']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/userbyid/{id}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserById']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/clubs': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getClubsSearch']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/producers': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getProducers']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/seasons/now': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getSeasonNow']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/seasons/{year}/{season}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getSeason']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/seasons': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getSeasonsList']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/seasons/upcoming': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getSeasonUpcoming']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/top/anime': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getTopAnime']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/top/manga': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getTopManga']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/top/people': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getTopPeople']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/top/characters': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getTopCharacters']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/top/reviews': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getTopReviews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/full': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserFullProfile']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserProfile']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/statistics': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserStatistics']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/favorites': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserFavorites']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/userupdates': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserUpdates']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/about': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserAbout']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/history': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserHistory']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/friends': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserFriends']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/animelist': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description User Anime lists have been discontinued since May 1st, 2022. Read more + */ + get: operations['getUserAnimelist']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/mangalist': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * @deprecated + * @description User Manga lists have been discontinued since May 1st, 2022. Read more + */ + get: operations['getUserMangaList']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/reviews': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserReviews']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/recommendations': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserRecommendations']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/clubs': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserClubs']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/users/{username}/external': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getUserExternal']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/watch/episodes': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getWatchRecentEpisodes']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/watch/episodes/popular': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getWatchPopularEpisodes']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/watch/promos': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getWatchRecentPromos']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/watch/promos/popular': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations['getWatchPopularPromos']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + /** + * @description User's anime list status filter options + * @enum {string} + */ + user_anime_list_status_filter: 'all' | 'watching' | 'completed' | 'onhold' | 'dropped' | 'plantowatch'; + /** + * @description Available Anime order_by properties + * @enum {string} + */ + anime_search_query_orderby: 'mal_id' | 'title' | 'start_date' | 'end_date' | 'episodes' | 'score' | 'scored_by' | 'rank' | 'popularity' | 'members' | 'favorites'; + /** + * @description Available Anime audience ratings

Ratings
  • G - All Ages
  • PG - Children
  • PG-13 - Teens 13 or older
  • R - 17+ (violence & profanity)
  • R+ - Mild Nudity
  • Rx - Hentai
+ * @enum {string} + */ + anime_search_query_rating: 'g' | 'pg' | 'pg13' | 'r17' | 'r' | 'rx'; + /** + * @description Available Anime statuses + * @enum {string} + */ + anime_search_query_status: 'airing' | 'complete' | 'upcoming'; + /** + * @description Available Anime types + * @enum {string} + */ + anime_search_query_type: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music' | 'cm' | 'pv' | 'tv_special'; + /** + * @description Available Character order_by properties + * @enum {string} + */ + characters_search_query_orderby: 'mal_id' | 'name' | 'favorites'; + /** + * @description Club Search Query Category + * @enum {string} + */ + club_search_query_category: + | 'anime' + | 'manga' + | 'actors_and_artists' + | 'characters' + | 'cities_and_neighborhoods' + | 'companies' + | 'conventions' + | 'games' + | 'japan' + | 'music' + | 'other' + | 'schools'; + /** + * @description Club Search Query OrderBy + * @enum {string} + */ + club_search_query_orderby: 'mal_id' | 'name' | 'members_count' | 'created'; + /** + * @description Club Search Query Type + * @enum {string} + */ + club_search_query_type: 'public' | 'private' | 'secret'; + /** + * @description Users Search Query Gender. + * @enum {string} + */ + users_search_query_gender: 'any' | 'male' | 'female' | 'nonbinary'; + /** + * @description Filter genres by type + * @enum {string} + */ + genre_query_filter: 'genres' | 'explicit_genres' | 'themes' | 'demographics'; + /** + * @description Order by magazine data + * @enum {string} + */ + magazines_query_orderby: 'mal_id' | 'name' | 'count'; + /** + * @description User's anime list status filter options + * @enum {string} + */ + user_manga_list_status_filter: 'all' | 'reading' | 'completed' | 'onhold' | 'dropped' | 'plantoread'; + /** + * @description Available Manga order_by properties + * @enum {string} + */ + manga_search_query_orderby: + | 'mal_id' + | 'title' + | 'start_date' + | 'end_date' + | 'chapters' + | 'volumes' + | 'score' + | 'scored_by' + | 'rank' + | 'popularity' + | 'members' + | 'favorites'; + /** + * @description Available Manga statuses + * @enum {string} + */ + manga_search_query_status: 'publishing' | 'complete' | 'hiatus' | 'discontinued' | 'upcoming'; + /** + * @description Available Manga types + * @enum {string} + */ + manga_search_query_type: 'manga' | 'novel' | 'lightnovel' | 'oneshot' | 'doujin' | 'manhwa' | 'manhua'; + /** + * @description Available People order_by properties + * @enum {string} + */ + people_search_query_orderby: 'mal_id' | 'name' | 'birthday' | 'favorites'; + /** + * @description Producers Search Query Order By + * @enum {string} + */ + producers_query_orderby: 'mal_id' | 'count' | 'favorites' | 'established'; + /** + * @description Search query sort direction + * @enum {string} + */ + search_query_sort: 'desc' | 'asc'; + /** + * @description Top items filter types + * @enum {string} + */ + top_anime_filter: 'airing' | 'upcoming' | 'bypopularity' | 'favorite'; + /** + * @description Top items filter types + * @enum {string} + */ + top_manga_filter: 'publishing' | 'upcoming' | 'bypopularity' | 'favorite'; + /** + * @description The type of reviews to filter by. Defaults to anime. + * @enum {string} + */ + top_reviews_type_enum: 'anime' | 'manga'; + /** @description Anime Episodes Resource */ + anime_episodes: { + data?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL. This is the URL of the episode's video. If there is no video url, this will be null. */ + url?: string | null; + /** @description Title */ + title?: string; + /** @description Title Japanese */ + title_japanese?: string | null; + /** @description title_romanji */ + title_romanji?: string | null; + /** @description Aired Date ISO8601 */ + aired?: string | null; + /** @description Aggregated episode score (1.00 - 5.00) based on MyAnimeList user voting */ + score?: Record | null; + /** @description Filler episode */ + filler?: boolean; + /** @description Recap episode */ + recap?: boolean; + /** @description Episode discussion forum URL */ + forum_url?: string | null; + }[]; + } & components['schemas']['pagination']; + /** @description Anime News Resource */ + anime_news: components['schemas']['pagination'] & components['schemas']['news']; + /** @description Anime Videos Episodes Resource */ + anime_videos_episodes: { + data?: { + /** @description MyAnimeList ID or Episode Number */ + mal_id?: number; + /** @description Episode Title */ + title?: string; + /** @description Episode Subtitle */ + episode?: string; + /** @description Episode Page URL */ + url?: string; + images?: components['schemas']['common_images']; + }[]; + } & components['schemas']['pagination']; + /** @description Character Pictures */ + character_pictures: { + data?: { + /** @description Default JPG Image Size URL */ + image_url?: string | null; + /** @description Large JPG Image Size URL */ + large_image_url?: string | null; + }[]; + }; + /** @description Club Member */ + club_member: { + data?: { + /** @description User's username */ + username?: string; + /** @description User URL */ + url?: string; + images?: components['schemas']['user_images']; + }[]; + }; + /** @description Manga News Resource */ + manga_news: components['schemas']['pagination'] & components['schemas']['news']; + /** @description Manga Pictures */ + manga_pictures: { + data?: components['schemas']['manga_images'][]; + }; + /** @description Character Pictures */ + person_pictures: { + data?: components['schemas']['people_images'][]; + }; + /** @description Random Resources */ + random: { + data?: (components['schemas']['anime'] | components['schemas']['manga'] | components['schemas']['character'] | components['schemas']['person'])[]; + }; + /** @description Anime resources currently airing */ + schedules: { + data?: components['schemas']['anime'][]; + } & components['schemas']['pagination_plus']; + /** @description User Results */ + users_search: { + data?: { + /** @description MyAnimeList URL */ + url?: string; + /** @description MyAnimeList Username */ + username?: string; + images?: components['schemas']['user_images']; + /** @description Last Online Date ISO8601 */ + last_online?: string; + }[]; + } & components['schemas']['pagination']; + /** @description List of available seasons */ + seasons: { + data?: { + /** @description Year */ + year?: number; + /** @description List of available seasons */ + seasons?: string[]; + }[]; + }; + /** @description Anime & Manga Reviews Resource */ + reviews_collection: { + data?: (components['schemas']['anime_review'] | components['schemas']['manga_review'])[]; + }; + /** @description User Friends */ + user_friends: { + data?: ({ + user?: components['schemas']['user_meta']; + } & { + /** @description Last Online Date ISO8601 format */ + last_online?: string; + /** @description Friends Since Date ISO8601 format */ + friends_since?: string; + })[]; + } & components['schemas']['pagination']; + /** @description User Clubs */ + user_clubs: { + data?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description Club Name */ + name?: string; + /** @description Club URL */ + url?: string; + }[]; + } & components['schemas']['pagination']; + /** @description Watch Episodes */ + watch_episodes: { + data?: { + entry?: components['schemas']['anime_meta']; + /** @description Recent Episodes (max 2 listed) */ + episodes?: { + /** @description MyAnimeList ID */ + mal_id?: string; + /** @description MyAnimeList URL */ + url?: string; + /** @description Episode Title */ + title?: string; + /** @description For MyAnimeList Premium Users */ + premium?: boolean; + }[]; + /** @description Region Locked Episode */ + region_locked?: boolean; + }[]; + } & components['schemas']['pagination']; + /** @description Watch Promos */ + watch_promos: components['schemas']['pagination'] & { + data?: { + /** @description Promo Title */ + title?: string; + entry?: components['schemas']['anime_meta']; + trailer?: components['schemas']['trailer']; + }[]; + }; + /** @description Anime Characters Resource */ + anime_characters: { + data?: { + /** @description Character details */ + character?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['character_images']; + /** @description Character Name */ + name?: string; + }; + /** @description Character's Role */ + role?: string; + voice_actors?: { + person?: { + mal_id?: number; + url?: string; + images?: components['schemas']['people_images']; + name?: string; + }; + language?: string; + }[]; + }[]; + }; + /** @description Anime Collection Resource */ + anime_search: { + data?: components['schemas']['anime'][]; + } & components['schemas']['pagination_plus']; + /** @description Anime Episode Resource */ + anime_episode: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description Title */ + title?: string; + /** @description Title Japanese */ + title_japanese?: string | null; + /** @description title_romanji */ + title_romanji?: string | null; + /** @description Episode duration in seconds */ + duration?: number | null; + /** @description Aired Date ISO8601 */ + aired?: string | null; + /** @description Filler episode */ + filler?: boolean; + /** @description Recap episode */ + recap?: boolean; + /** @description Episode Synopsis */ + synopsis?: string | null; + }; + /** @description Full anime Resource */ + anime_full: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['anime_images']; + trailer?: components['schemas']['trailer_base']; + /** @description Whether the entry is pending approval on MAL or not */ + approved?: boolean; + /** @description All titles */ + titles?: components['schemas']['title'][]; + /** + * @deprecated + * @description Title + */ + title?: string; + /** + * @deprecated + * @description English Title + */ + title_english?: string | null; + /** + * @deprecated + * @description Japanese Title + */ + title_japanese?: string | null; + /** + * @deprecated + * @description Other Titles + */ + title_synonyms?: string[]; + /** + * @description Anime Type + * @enum {string|null} + */ + type?: 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music' | null; + /** @description Original Material/Source adapted from */ + source?: string | null; + /** @description Episode count */ + episodes?: number | null; + /** + * @description Airing status + * @enum {string|null} + */ + status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired' | null; + /** @description Airing boolean */ + airing?: boolean; + aired?: components['schemas']['daterange']; + /** @description Parsed raw duration */ + duration?: string | null; + /** + * @description Anime audience rating + * @enum {string|null} + */ + rating?: 'G - All Ages' | 'PG - Children' | 'PG-13 - Teens 13 or older' | 'R - 17+ (violence & profanity)' | 'R+ - Mild Nudity' | 'Rx - Hentai' | null; + /** + * Format: float + * @description Score + */ + score?: number | null; + /** @description Number of users */ + scored_by?: number | null; + /** @description Ranking */ + rank?: number | null; + /** @description Popularity */ + popularity?: number | null; + /** @description Number of users who have added this entry to their list */ + members?: number | null; + /** @description Number of users who have favorited this entry */ + favorites?: number | null; + /** @description Synopsis */ + synopsis?: string | null; + /** @description Background */ + background?: string | null; + /** + * @description Season + * @enum {string|null} + */ + season?: 'summer' | 'winter' | 'spring' | 'fall' | null; + /** @description Year */ + year?: number | null; + broadcast?: components['schemas']['broadcast']; + producers?: components['schemas']['mal_url'][]; + licensors?: components['schemas']['mal_url'][]; + studios?: components['schemas']['mal_url'][]; + genres?: components['schemas']['mal_url'][]; + explicit_genres?: components['schemas']['mal_url'][]; + themes?: components['schemas']['mal_url'][]; + demographics?: components['schemas']['mal_url'][]; + relations?: { + /** @description Relation type */ + relation?: string; + entry?: components['schemas']['mal_url'][]; + }[]; + theme?: { + openings?: string[]; + endings?: string[]; + }; + external?: { + name?: string; + url?: string; + }[]; + streaming?: { + name?: string; + url?: string; + }[]; + }; + /** @description Anime Relations */ + anime_relations: { + data?: { + /** @description Relation type */ + relation?: string; + entry?: components['schemas']['mal_url'][]; + }[]; + }; + /** @description Anime Resource */ + anime: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['anime_images']; + trailer?: components['schemas']['trailer_base']; + /** @description Whether the entry is pending approval on MAL or not */ + approved?: boolean; + /** @description All titles */ + titles?: components['schemas']['title'][]; + /** + * @deprecated + * @description Title + */ + title?: string; + /** + * @deprecated + * @description English Title + */ + title_english?: string | null; + /** + * @deprecated + * @description Japanese Title + */ + title_japanese?: string | null; + /** + * @deprecated + * @description Other Titles + */ + title_synonyms?: string[]; + /** + * @description Anime Type + * @enum {string|null} + */ + type?: 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music' | null; + /** @description Original Material/Source adapted from */ + source?: string | null; + /** @description Episode count */ + episodes?: number | null; + /** + * @description Airing status + * @enum {string|null} + */ + status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired' | null; + /** @description Airing boolean */ + airing?: boolean; + aired?: components['schemas']['daterange']; + /** @description Parsed raw duration */ + duration?: string | null; + /** + * @description Anime audience rating + * @enum {string|null} + */ + rating?: 'G - All Ages' | 'PG - Children' | 'PG-13 - Teens 13 or older' | 'R - 17+ (violence & profanity)' | 'R+ - Mild Nudity' | 'Rx - Hentai' | null; + /** + * Format: float + * @description Score + */ + score?: number | null; + /** @description Number of users */ + scored_by?: number | null; + /** @description Ranking */ + rank?: number | null; + /** @description Popularity */ + popularity?: number | null; + /** @description Number of users who have added this entry to their list */ + members?: number | null; + /** @description Number of users who have favorited this entry */ + favorites?: number | null; + /** @description Synopsis */ + synopsis?: string | null; + /** @description Background */ + background?: string | null; + /** + * @description Season + * @enum {string|null} + */ + season?: 'summer' | 'winter' | 'spring' | 'fall' | null; + /** @description Year */ + year?: number | null; + broadcast?: components['schemas']['broadcast']; + producers?: components['schemas']['mal_url'][]; + licensors?: components['schemas']['mal_url'][]; + studios?: components['schemas']['mal_url'][]; + genres?: components['schemas']['mal_url'][]; + explicit_genres?: components['schemas']['mal_url'][]; + themes?: components['schemas']['mal_url'][]; + demographics?: components['schemas']['mal_url'][]; + }; + /** @description Anime Staff Resource */ + anime_staff: { + data?: { + /** @description Person details */ + person?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['people_images']; + /** @description Name */ + name?: string; + }; + /** @description Staff Positions */ + positions?: string[]; + }[]; + }; + /** @description Anime Statistics Resource */ + anime_statistics: { + data?: { + /** @description Number of users watching the resource */ + watching?: number; + /** @description Number of users who have completed the resource */ + completed?: number; + /** @description Number of users who have put the resource on hold */ + on_hold?: number; + /** @description Number of users who have dropped the resource */ + dropped?: number; + /** @description Number of users who have planned to watch the resource */ + plan_to_watch?: number; + /** @description Total number of users who have the resource added to their lists */ + total?: number; + scores?: { + /** @description Scoring value */ + score?: number; + /** @description Number of votes for this score */ + votes?: number; + /** + * Format: float + * @description Percentage of votes for this score + */ + percentage?: number; + }[]; + }; + }; + /** @description Anime Opening and Ending Themes */ + anime_themes: { + data?: { + openings?: string[]; + endings?: string[]; + }; + }; + /** @description Anime Videos Resource */ + anime_videos: { + data?: { + promo?: { + /** @description Title */ + title?: string; + trailer?: components['schemas']['trailer']; + }[]; + episodes?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description Title */ + title?: string; + /** @description Episode */ + episode?: string; + images?: components['schemas']['common_images']; + }[]; + music_videos?: { + /** @description Title */ + title?: string; + video?: components['schemas']['trailer']; + meta?: { + title?: string | null; + author?: string | null; + }; + }[]; + }; + }; + /** @description Character casted in anime */ + character_anime: { + data?: { + /** @description Character's Role */ + role?: string; + anime?: components['schemas']['anime_meta']; + }[]; + }; + /** @description Characters Search Resource */ + characters_search: { + data?: components['schemas']['character'][]; + } & components['schemas']['pagination_plus']; + /** @description Character Resource */ + character_full: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['character_images']; + /** @description Name */ + name?: string; + /** @description Name */ + name_kanji?: string | null; + /** @description Other Names */ + nicknames?: string[]; + /** @description Number of users who have favorited this entry */ + favorites?: number; + /** @description Biography */ + about?: string | null; + anime?: { + /** @description Character's Role */ + role?: string; + anime?: components['schemas']['anime_meta']; + }[]; + manga?: { + /** @description Character's Role */ + role?: string; + manga?: components['schemas']['manga_meta']; + }[]; + voices?: { + /** @description Character's Role */ + language?: string; + person?: components['schemas']['person_meta']; + }[]; + }; + /** @description Character casted in manga */ + character_manga: { + data?: { + /** @description Character's Role */ + role?: string; + manga?: components['schemas']['manga_meta']; + }[]; + }; + /** @description Character Resource */ + character: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['character_images']; + /** @description Name */ + name?: string; + /** @description Name */ + name_kanji?: string | null; + /** @description Other Names */ + nicknames?: string[]; + /** @description Number of users who have favorited this entry */ + favorites?: number; + /** @description Biography */ + about?: string | null; + }; + /** @description Character voice actors */ + character_voice_actors: { + data?: { + /** @description Character's Role */ + language?: string; + person?: components['schemas']['person_meta']; + }[]; + }; + /** @description Clubs Search Resource */ + clubs_search: { + data?: components['schemas']['club'][]; + } & components['schemas']['pagination']; + /** @description Club Relations */ + club_relations: { + data?: { + anime?: components['schemas']['mal_url'][]; + manga?: components['schemas']['mal_url'][]; + characters?: components['schemas']['mal_url'][]; + }; + }; + /** @description Club Resource */ + club: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description Club name */ + name?: string; + /** @description Club URL */ + url?: string; + images?: components['schemas']['common_images']; + /** @description Number of club members */ + members?: number; + /** + * @description Club Category + * @enum {string} + */ + category?: + | 'actors & artists' + | 'anime' + | 'characters' + | 'cities & neighborhoods' + | 'companies' + | 'conventions' + | 'games' + | 'japan' + | 'manga' + | 'music' + | 'others' + | 'schools'; + /** @description Date Created ISO8601 */ + created?: string; + /** + * @description Club access + * @enum {string} + */ + access?: 'public' | 'private' | 'secret'; + }; + /** @description Club Staff Resource */ + club_staff: { + data?: { + /** @description User URL */ + url?: string; + /** @description User's username */ + username?: string; + }[]; + }; + /** @description Youtube Details */ + trailer: components['schemas']['trailer_base'] & components['schemas']['trailer_images']; + /** @description Youtube Details */ + trailer_base: { + /** @description YouTube ID */ + youtube_id?: string | null; + /** @description YouTube URL */ + url?: string | null; + /** @description Parsed Embed URL */ + embed_url?: string | null; + }; + /** @description Youtube Images */ + trailer_images: { + images?: { + /** @description Default Image Size URL (120x90) */ + image_url?: string | null; + /** @description Small Image Size URL (640x480) */ + small_image_url?: string | null; + /** @description Medium Image Size URL (320x180) */ + medium_image_url?: string | null; + /** @description Large Image Size URL (480x360) */ + large_image_url?: string | null; + /** @description Maximum Image Size URL (1280x720) */ + maximum_image_url?: string | null; + }; + }; + /** @description Date range */ + daterange: { + /** @description Date ISO8601 */ + from?: string | null; + /** @description Date ISO8601 */ + to?: string | null; + /** @description Date Prop */ + prop?: { + /** @description Date Prop From */ + from?: { + /** @description Day */ + day?: number | null; + /** @description Month */ + month?: number | null; + /** @description Year */ + year?: number | null; + }; + /** @description Date Prop To */ + to?: { + /** @description Day */ + day?: number | null; + /** @description Month */ + month?: number | null; + /** @description Year */ + year?: number | null; + }; + /** @description Raw parsed string */ + string?: string | null; + }; + }; + /** @description Broadcast Details */ + broadcast: { + /** @description Day of the week */ + day?: string | null; + /** @description Time in 24 hour format */ + time?: string | null; + /** @description Timezone (Tz Database format https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) */ + timezone?: string | null; + /** @description Raw parsed broadcast string */ + string?: string | null; + }; + /** @description Parsed URL Data */ + mal_url: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description Type of resource */ + type?: string; + /** @description Resource Name/Title */ + name?: string; + /** @description MyAnimeList URL */ + url?: string; + }; + /** @description Parsed URL Data */ + mal_url_2: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description Type of resource */ + type?: string; + /** @description Resource Name/Title */ + title?: string; + /** @description MyAnimeList URL */ + url?: string; + }; + /** @description Entry Meta data */ + entry_meta: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description Image URL */ + image_url?: string; + /** @description Entry Name/Title */ + name?: string; + }; + /** @description Related resources */ + relation: { + /** @description Relation type */ + relation?: string; + /** @description Related entries */ + entry?: components['schemas']['mal_url'][]; + }; + pagination: { + pagination?: { + last_visible_page?: number; + has_next_page?: boolean; + }; + }; + pagination_plus: { + pagination?: { + last_visible_page?: number; + has_next_page?: boolean; + current_page?: number; + items?: { + count?: number; + total?: number; + per_page?: number; + }; + }; + }; + user_meta: { + /** @description MyAnimeList Username */ + username?: string; + /** @description MyAnimeList Profile URL */ + url?: string; + images?: components['schemas']['user_images']; + }; + /** @description User Meta By ID */ + user_by_id: { + /** @description MyAnimeList URL */ + url?: string; + /** @description MyAnimeList Username */ + username?: string; + }; + user_images: { + /** @description Available images in JPG */ + jpg?: { + /** @description Image URL JPG */ + image_url?: string | null; + }; + /** @description Available images in WEBP */ + webp?: { + /** @description Image URL WEBP */ + image_url?: string | null; + }; + }; + anime_meta: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['anime_images']; + /** @description Entry title */ + title?: string; + }; + manga_meta: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['manga_images']; + /** @description Entry title */ + title?: string; + }; + character_meta: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['character_images']; + /** @description Entry name */ + name?: string; + }; + person_meta: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['people_images']; + /** @description Entry name */ + name?: string; + }; + anime_images: { + /** @description Available images in JPG */ + jpg?: { + /** @description Image URL JPG */ + image_url?: string | null; + /** @description Small Image URL JPG */ + small_image_url?: string | null; + /** @description Image URL JPG */ + large_image_url?: string | null; + }; + /** @description Available images in WEBP */ + webp?: { + /** @description Image URL WEBP */ + image_url?: string | null; + /** @description Small Image URL WEBP */ + small_image_url?: string | null; + /** @description Image URL WEBP */ + large_image_url?: string | null; + }; + }; + manga_images: { + /** @description Available images in JPG */ + jpg?: { + /** @description Image URL JPG */ + image_url?: string | null; + /** @description Small Image URL JPG */ + small_image_url?: string | null; + /** @description Image URL JPG */ + large_image_url?: string | null; + }; + /** @description Available images in WEBP */ + webp?: { + /** @description Image URL WEBP */ + image_url?: string | null; + /** @description Small Image URL WEBP */ + small_image_url?: string | null; + /** @description Image URL WEBP */ + large_image_url?: string | null; + }; + }; + character_images: { + /** @description Available images in JPG */ + jpg?: { + /** @description Image URL JPG */ + image_url?: string | null; + /** @description Small Image URL JPG */ + small_image_url?: string | null; + }; + /** @description Available images in WEBP */ + webp?: { + /** @description Image URL WEBP */ + image_url?: string | null; + /** @description Small Image URL WEBP */ + small_image_url?: string | null; + }; + }; + people_images: { + /** @description Available images in JPG */ + jpg?: { + /** @description Image URL JPG */ + image_url?: string | null; + }; + }; + common_images: { + /** @description Available images in JPG */ + jpg?: { + /** @description Image URL JPG */ + image_url?: string | null; + }; + }; + title: { + /** @description Title type */ + type?: string; + /** @description Title value */ + title?: string; + }; + /** @description External links */ + external_links: { + data?: { + name?: string; + url?: string; + }[]; + }; + /** @description Forum Resource */ + forum: { + data?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description Title */ + title?: string; + /** @description Post Date ISO8601 */ + date?: string; + /** @description Author MyAnimeList Username */ + author_username?: string; + /** @description Author Profile URL */ + author_url?: string; + /** @description Comment count */ + comments?: number; + /** @description Last comment details */ + last_comment?: { + /** @description Last comment URL */ + url?: string; + /** @description Author MyAnimeList Username */ + author_username?: string; + /** @description Author Profile URL */ + author_url?: string; + /** @description Last comment date posted ISO8601 */ + date?: string | null; + }; + }[]; + }; + /** @description Genres Collection Resource */ + genres: { + data?: components['schemas']['genre'][]; + }; + /** @description Genre Resource */ + genre: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description Genre Name */ + name?: string; + /** @description MyAnimeList URL */ + url?: string; + /** @description Genre's entry count */ + count?: number; + }; + /** @description Magazine Collection Resource */ + magazines: { + data?: components['schemas']['magazine'][]; + } & components['schemas']['pagination']; + /** @description Magazine Resource */ + magazine: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description Magazine Name */ + name?: string; + /** @description MyAnimeList URL */ + url?: string; + /** @description Magazine's manga count */ + count?: number; + }; + /** @description Manga Characters Resource */ + manga_characters: { + data?: { + character?: components['schemas']['character_meta']; + /** @description Character's Role */ + role?: string; + }[]; + }; + /** @description Manga Search Resource */ + manga_search: { + data?: components['schemas']['manga'][]; + } & components['schemas']['pagination_plus']; + /** @description Manga Resource */ + manga_full: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['manga_images']; + /** @description Whether the entry is pending approval on MAL or not */ + approved?: boolean; + /** @description All Titles */ + titles?: components['schemas']['title'][]; + /** + * @deprecated + * @description Title + */ + title?: string; + /** + * @deprecated + * @description English Title + */ + title_english?: string | null; + /** + * @deprecated + * @description Japanese Title + */ + title_japanese?: string | null; + /** + * @deprecated + * @description Other Titles + */ + title_synonyms?: string[]; + /** + * @description Manga Type + * @enum {string|null} + */ + type?: 'Manga' | 'Novel' | 'Light Novel' | 'One-shot' | 'Doujinshi' | 'Manhua' | 'Manhwa' | 'OEL' | null; + /** @description Chapter count */ + chapters?: number | null; + /** @description Volume count */ + volumes?: number | null; + /** + * @description Publishing status + * @enum {string} + */ + status?: 'Finished' | 'Publishing' | 'On Hiatus' | 'Discontinued' | 'Not yet published'; + /** @description Publishing boolean */ + publishing?: boolean; + published?: components['schemas']['daterange']; + /** + * Format: float + * @description Score + */ + score?: number | null; + /** @description Number of users */ + scored_by?: number | null; + /** @description Ranking */ + rank?: number | null; + /** @description Popularity */ + popularity?: number | null; + /** @description Number of users who have added this entry to their list */ + members?: number | null; + /** @description Number of users who have favorited this entry */ + favorites?: number | null; + /** @description Synopsis */ + synopsis?: string | null; + /** @description Background */ + background?: string | null; + authors?: components['schemas']['mal_url'][]; + serializations?: components['schemas']['mal_url'][]; + genres?: components['schemas']['mal_url'][]; + explicit_genres?: components['schemas']['mal_url'][]; + themes?: components['schemas']['mal_url'][]; + demographics?: components['schemas']['mal_url'][]; + relations?: { + /** @description Relation type */ + relation?: string; + entry?: components['schemas']['mal_url'][]; + }[]; + external?: { + name?: string; + url?: string; + }[]; + }; + /** @description Manga Resource */ + manga: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['manga_images']; + /** @description Whether the entry is pending approval on MAL or not */ + approved?: boolean; + /** @description All Titles */ + titles?: components['schemas']['title'][]; + /** + * @deprecated + * @description Title + */ + title?: string; + /** + * @deprecated + * @description English Title + */ + title_english?: string | null; + /** + * @deprecated + * @description Japanese Title + */ + title_japanese?: string | null; + /** + * @description Manga Type + * @enum {string|null} + */ + type?: 'Manga' | 'Novel' | 'Light Novel' | 'One-shot' | 'Doujinshi' | 'Manhua' | 'Manhwa' | 'OEL' | null; + /** @description Chapter count */ + chapters?: number | null; + /** @description Volume count */ + volumes?: number | null; + /** + * @description Publishing status + * @enum {string} + */ + status?: 'Finished' | 'Publishing' | 'On Hiatus' | 'Discontinued' | 'Not yet published'; + /** @description Publishing boolean */ + publishing?: boolean; + published?: components['schemas']['daterange']; + /** + * Format: float + * @description Score + */ + score?: number | null; + /** @description Number of users */ + scored_by?: number | null; + /** @description Ranking */ + rank?: number | null; + /** @description Popularity */ + popularity?: number | null; + /** @description Number of users who have added this entry to their list */ + members?: number | null; + /** @description Number of users who have favorited this entry */ + favorites?: number | null; + /** @description Synopsis */ + synopsis?: string | null; + /** @description Background */ + background?: string | null; + authors?: components['schemas']['mal_url'][]; + serializations?: components['schemas']['mal_url'][]; + genres?: components['schemas']['mal_url'][]; + explicit_genres?: components['schemas']['mal_url'][]; + themes?: components['schemas']['mal_url'][]; + demographics?: components['schemas']['mal_url'][]; + }; + /** @description Manga Statistics Resource */ + manga_statistics: { + data?: { + /** @description Number of users reading the resource */ + reading?: number; + /** @description Number of users who have completed the resource */ + completed?: number; + /** @description Number of users who have put the resource on hold */ + on_hold?: number; + /** @description Number of users who have dropped the resource */ + dropped?: number; + /** @description Number of users who have planned to read the resource */ + plan_to_read?: number; + /** @description Total number of users who have the resource added to their lists */ + total?: number; + scores?: { + /** @description Scoring value */ + score?: number; + /** @description Number of votes for this score */ + votes?: number; + /** + * Format: float + * @description Percentage of votes for this score + */ + percentage?: number; + }[]; + }; + }; + /** @description More Info Resource */ + moreinfo: { + data?: { + /** @description Additional information on the entry */ + moreinfo?: string | null; + }; + }; + news: { + data?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description Title */ + title?: string; + /** @description Post Date ISO8601 */ + date?: string; + /** @description Author MyAnimeList Username */ + author_username?: string; + /** @description Author Profile URL */ + author_url?: string; + /** @description Forum topic URL */ + forum_url?: string; + images?: components['schemas']['common_images']; + /** @description Comment count */ + comments?: number; + /** @description Excerpt */ + excerpt?: string; + }[]; + }; + /** @description Person anime staff positions */ + person_anime: { + data?: { + /** @description Person's position */ + position?: string; + anime?: components['schemas']['anime_meta']; + }[]; + }; + /** @description People Search */ + people_search: { + data?: components['schemas']['person'][]; + } & components['schemas']['pagination_plus']; + /** @description Person Resource */ + person_full: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description Person's website URL */ + website_url?: string | null; + images?: components['schemas']['people_images']; + /** @description Name */ + name?: string; + /** @description Given Name */ + given_name?: string | null; + /** @description Family Name */ + family_name?: string | null; + /** @description Other Names */ + alternate_names?: string[]; + /** @description Birthday Date ISO8601 */ + birthday?: string | null; + /** @description Number of users who have favorited this entry */ + favorites?: number; + /** @description Biography */ + about?: string | null; + anime?: { + /** @description Person's position */ + position?: string; + anime?: components['schemas']['anime_meta']; + }[]; + manga?: { + /** @description Person's position */ + position?: string; + manga?: components['schemas']['manga_meta']; + }[]; + voices?: { + /** @description Person's Character's role in the anime */ + role?: string; + anime?: components['schemas']['anime_meta']; + character?: components['schemas']['character_meta']; + }[]; + }; + /** @description Person's mangaography */ + person_manga: { + data?: { + /** @description Person's position */ + position?: string; + manga?: components['schemas']['manga_meta']; + }[]; + }; + /** @description Person Resource */ + person: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description Person's website URL */ + website_url?: string | null; + images?: components['schemas']['people_images']; + /** @description Name */ + name?: string; + /** @description Given Name */ + given_name?: string | null; + /** @description Family Name */ + family_name?: string | null; + /** @description Other Names */ + alternate_names?: string[]; + /** @description Birthday Date ISO8601 */ + birthday?: string | null; + /** @description Number of users who have favorited this entry */ + favorites?: number; + /** @description Biography */ + about?: string | null; + }; + /** @description Person's voice acting roles */ + person_voice_acting_roles: { + data?: { + /** @description Person's Character's role in the anime */ + role?: string; + anime?: components['schemas']['anime_meta']; + character?: components['schemas']['character_meta']; + }[]; + }; + /** @description Pictures Resource */ + pictures: { + data?: { + images?: components['schemas']['anime_images']; + }[]; + }; + /** @description Pictures Resource */ + pictures_variants: { + data?: { + images?: components['schemas']['common_images']; + }[]; + }; + /** @description Producers Collection Resource */ + producers: { + data?: components['schemas']['producer'][]; + } & components['schemas']['pagination']; + /** @description Producers Resource */ + producer_full: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description All titles */ + titles?: components['schemas']['title'][]; + images?: components['schemas']['common_images']; + /** @description Producers's member favorites count */ + favorites?: number; + /** @description Producers's anime count */ + count?: number; + /** @description Established Date ISO8601 */ + established?: string | null; + /** @description About the Producer */ + about?: string | null; + external?: { + name?: string; + url?: string; + }[]; + }; + /** @description Producers Resource */ + producer: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList URL */ + url?: string; + /** @description All titles */ + titles?: components['schemas']['title'][]; + images?: components['schemas']['common_images']; + /** @description Producers's member favorites count */ + favorites?: number; + /** @description Producers's anime count */ + count?: number; + /** @description Established Date ISO8601 */ + established?: string | null; + /** @description About the Producer */ + about?: string | null; + }; + user_about: { + data?: { + /** @description User About. NOTE: About information is customizable by users through BBCode on MyAnimeList. This means users can add multimedia content, different text sizes, etc. Due to this freeform, Jikan returns parsed HTML. Validate on your end! */ + about?: string | null; + }[]; + }; + user_favorites: { + /** @description Favorite Anime */ + anime?: ({ + type?: string; + start_year?: number; + } & components['schemas']['anime_meta'])[]; + /** @description Favorite Manga */ + manga?: ({ + type?: string; + start_year?: number; + } & components['schemas']['manga_meta'])[]; + /** @description Favorite Characters */ + characters?: (components['schemas']['character_meta'] & components['schemas']['mal_url_2'])[]; + /** @description Favorite People */ + people?: components['schemas']['character_meta'][]; + }; + /** @description Transform the resource into an array. */ + user_profile_full: { + /** @description MyAnimeList ID */ + mal_id?: number | null; + /** @description MyAnimeList Username */ + username?: string; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['user_images']; + /** @description Last Online Date ISO8601 */ + last_online?: string | null; + /** @description User Gender */ + gender?: string | null; + /** @description Birthday Date ISO8601 */ + birthday?: string | null; + /** @description Location */ + location?: string | null; + /** @description Joined Date ISO8601 */ + joined?: string | null; + statistics?: { + /** @description Anime Statistics */ + anime?: { + /** + * Format: float + * @description Number of days spent watching Anime + */ + days_watched?: number; + /** + * Format: float + * @description Mean Score + */ + mean_score?: number; + /** @description Anime Watching */ + watching?: number; + /** @description Anime Completed */ + completed?: number; + /** @description Anime On-Hold */ + on_hold?: number; + /** @description Anime Dropped */ + dropped?: number; + /** @description Anime Planned to Watch */ + plan_to_watch?: number; + /** @description Total Anime entries on User list */ + total_entries?: number; + /** @description Anime re-watched */ + rewatched?: number; + /** @description Number of Anime Episodes Watched */ + episodes_watched?: number; + }; + /** @description Manga Statistics */ + manga?: { + /** + * Format: float + * @description Number of days spent reading Manga + */ + days_read?: number; + /** + * Format: float + * @description Mean Score + */ + mean_score?: number; + /** @description Manga Reading */ + reading?: number; + /** @description Manga Completed */ + completed?: number; + /** @description Manga On-Hold */ + on_hold?: number; + /** @description Manga Dropped */ + dropped?: number; + /** @description Manga Planned to Read */ + plan_to_read?: number; + /** @description Total Manga entries on User list */ + total_entries?: number; + /** @description Manga re-read */ + reread?: number; + /** @description Number of Manga Chapters Read */ + chapters_read?: number; + /** @description Number of Manga Volumes Read */ + volumes_read?: number; + }; + }; + external?: { + name?: string; + url?: string; + }[]; + }; + user_history: { + data?: components['schemas']['history'][]; + }; + /** @description Transform the resource into an array. */ + history: { + entry?: components['schemas']['mal_url']; + /** @description Number of episodes/chapters watched/read */ + increment?: number; + /** @description Date ISO8601 */ + date?: string; + }; + user_updates: { + data?: { + /** @description Last updated Anime */ + anime?: ({ + entry?: components['schemas']['anime_meta']; + } & { + score?: number | null; + status?: string; + episodes_seen?: number | null; + episodes_total?: number | null; + /** @description ISO8601 format */ + date?: string; + })[]; + /** @description Last updated Manga */ + manga?: ({ + entry?: components['schemas']['manga_meta']; + } & { + score?: number | null; + status?: string; + chapters_read?: number | null; + chapters_total?: number | null; + volumes_read?: number | null; + volumes_total?: number | null; + /** @description ISO8601 format */ + date?: string; + })[]; + }; + }; + user_profile: { + /** @description MyAnimeList ID */ + mal_id?: number | null; + /** @description MyAnimeList Username */ + username?: string; + /** @description MyAnimeList URL */ + url?: string; + images?: components['schemas']['user_images']; + /** @description Last Online Date ISO8601 */ + last_online?: string | null; + /** @description User Gender */ + gender?: string | null; + /** @description Birthday Date ISO8601 */ + birthday?: string | null; + /** @description Location */ + location?: string | null; + /** @description Joined Date ISO8601 */ + joined?: string | null; + }; + /** @description Transform the resource into an array. */ + users_temp: { + data?: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList Username */ + username?: string; + /** @description MyAnimeList URL */ + url?: string; + /** @description Images */ + images?: { + /** @description Available images in JPG */ + jpg?: { + /** @description Image URL JPG (225x335) */ + image_url?: string; + }; + /** @description Available images in WEBP */ + webp?: { + /** @description Image URL WEBP (225x335) */ + image_url?: string; + }; + }; + /** @description Last Online Date ISO8601 */ + last_online?: string; + /** @description User Gender */ + gender?: string; + /** @description Birthday Date ISO8601 */ + birthday?: string; + /** @description Location */ + location?: string; + /** @description Joined Date ISO8601 */ + joined?: string; + /** @description Anime Stats */ + anime_stats?: { + /** + * Format: float + * @description Number of days spent watching Anime + */ + days_watched?: number; + /** + * Format: float + * @description Mean Score + */ + mean_score?: number; + /** @description Anime Watching */ + watching?: number; + /** @description Anime Completed */ + completed?: number; + /** @description Anime On-Hold */ + on_hold?: number; + /** @description Anime Dropped */ + dropped?: number; + /** @description Anime Planned to Watch */ + plan_to_watch?: number; + /** @description Total Anime entries on User list */ + total_entries?: number; + /** @description Anime re-watched */ + rewatched?: number; + /** @description Number of Anime Episodes Watched */ + episodes_watched?: number; + }; + /** @description Manga Stats */ + manga_stats?: { + /** + * Format: float + * @description Number of days spent reading Manga + */ + days_read?: number; + /** + * Format: float + * @description Mean Score + */ + mean_score?: number; + /** @description Manga Reading */ + reading?: number; + /** @description Manga Completed */ + completed?: number; + /** @description Manga On-Hold */ + on_hold?: number; + /** @description Manga Dropped */ + dropped?: number; + /** @description Manga Planned to Read */ + plan_to_read?: number; + /** @description Total Manga entries on User list */ + total_entries?: number; + /** @description Manga re-read */ + reread?: number; + /** @description Number of Manga Chapters Read */ + chapters_read?: number; + /** @description Number of Manga Volumes Read */ + volumes_read?: number; + }; + /** @description Favorite entries */ + favorites?: { + /** @description Favorite Anime */ + anime?: components['schemas']['entry_meta'][]; + /** @description Favorite Manga */ + manga?: components['schemas']['entry_meta'][]; + /** @description Favorite Characters */ + characters?: components['schemas']['entry_meta'][]; + /** @description Favorite People */ + people?: components['schemas']['entry_meta'][]; + }; + /** @description User About. NOTE: About information is customizable by users through BBCode on MyAnimeList. This means users can add multimedia content, different text sizes, etc. Due to this freeform, Jikan returns parsed HTML. Validate on your end! */ + about?: string; + }[]; + }; + user_statistics: { + data?: { + /** @description Anime Statistics */ + anime?: { + /** + * Format: float + * @description Number of days spent watching Anime + */ + days_watched?: number; + /** + * Format: float + * @description Mean Score + */ + mean_score?: number; + /** @description Anime Watching */ + watching?: number; + /** @description Anime Completed */ + completed?: number; + /** @description Anime On-Hold */ + on_hold?: number; + /** @description Anime Dropped */ + dropped?: number; + /** @description Anime Planned to Watch */ + plan_to_watch?: number; + /** @description Total Anime entries on User list */ + total_entries?: number; + /** @description Anime re-watched */ + rewatched?: number; + /** @description Number of Anime Episodes Watched */ + episodes_watched?: number; + }; + /** @description Manga Statistics */ + manga?: { + /** + * Format: float + * @description Number of days spent reading Manga + */ + days_read?: number; + /** + * Format: float + * @description Mean Score + */ + mean_score?: number; + /** @description Manga Reading */ + reading?: number; + /** @description Manga Completed */ + completed?: number; + /** @description Manga On-Hold */ + on_hold?: number; + /** @description Manga Dropped */ + dropped?: number; + /** @description Manga Planned to Read */ + plan_to_read?: number; + /** @description Total Manga entries on User list */ + total_entries?: number; + /** @description Manga re-read */ + reread?: number; + /** @description Number of Manga Chapters Read */ + chapters_read?: number; + /** @description Number of Manga Volumes Read */ + volumes_read?: number; + }; + }; + }; + /** @description Recommendations */ + recommendations: { + data?: { + /** @description MAL IDs of recommendations is both of the MAL ID's with a `-` delimiter */ + mal_id?: string; + /** @description Array of 2 entries that are being recommended to each other */ + entry?: (components['schemas']['anime_meta'] | components['schemas']['manga_meta'])[]; + /** @description Recommendation context provided by the user */ + content?: string; + user?: components['schemas']['user_by_id']; + }[]; + } & components['schemas']['pagination']; + /** @description Entry Recommendations Resource */ + entry_recommendations: { + data?: { + entry?: components['schemas']['anime_meta'] | components['schemas']['manga_meta']; + }[]; + }; + manga_review: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList review URL */ + url?: string; + /** @description Entry type */ + type?: string; + /** @description User reaction count on the review */ + reactions?: { + /** @description Overall reaction count */ + overall?: number; + /** @description Nice reaction count */ + nice?: number; + /** @description Love it reaction count */ + love_it?: number; + /** @description Funny reaction count */ + funny?: number; + /** @description Confusing reaction count */ + confusing?: number; + /** @description Informative reaction count */ + informative?: number; + /** @description Well written reaction count */ + well_written?: number; + /** @description Creative reaction count */ + creative?: number; + }; + /** @description Review created date ISO8601 */ + date?: string; + /** @description Review content */ + review?: string; + /** @description Number of user votes on the Review */ + score?: number; + /** @description Review tags */ + tags?: string[]; + /** @description The review contains spoiler */ + is_spoiler?: boolean; + /** @description The review was made before the entry was completed */ + is_preliminary?: boolean; + }; + anime_review: { + /** @description MyAnimeList ID */ + mal_id?: number; + /** @description MyAnimeList review URL */ + url?: string; + /** @description Entry type */ + type?: string; + /** @description User reaction count on the review */ + reactions?: { + /** @description Overall reaction count */ + overall?: number; + /** @description Nice reaction count */ + nice?: number; + /** @description Love it reaction count */ + love_it?: number; + /** @description Funny reaction count */ + funny?: number; + /** @description Confusing reaction count */ + confusing?: number; + /** @description Informative reaction count */ + informative?: number; + /** @description Well written reaction count */ + well_written?: number; + /** @description Creative reaction count */ + creative?: number; + }; + /** @description Review created date ISO8601 */ + date?: string; + /** @description Review content */ + review?: string; + /** @description Number of user votes on the Review */ + score?: number; + /** @description Review tags */ + tags?: string[]; + /** @description The review contains spoiler */ + is_spoiler?: boolean; + /** @description The review was made before the entry was completed */ + is_preliminary?: boolean; + /** @description Number of episodes watched */ + episodes_watched?: number; + }; + /** @description Anime Reviews Resource */ + anime_reviews: { + data?: ({ + user?: components['schemas']['user_meta']; + } & components['schemas']['anime_review'])[]; + } & components['schemas']['pagination']; + /** @description Manga Reviews Resource */ + manga_reviews: { + data?: ({ + user?: components['schemas']['user_meta']; + } & components['schemas']['manga_review'])[]; + } & components['schemas']['pagination']; + /** @description Streaming links */ + streaming_links: { + data?: { + name?: string; + url?: string; + }[]; + }; + /** @description Anime User Updates Resource */ + anime_userupdates: { + data?: { + user?: components['schemas']['user_meta']; + /** @description User Score */ + score?: number | null; + /** @description User list status */ + status?: string; + /** @description Number of episodes seen */ + episodes_seen?: number | null; + /** @description Total number of episodes */ + episodes_total?: number | null; + /** @description Last updated date ISO8601 */ + date?: string; + }[]; + } & components['schemas']['pagination']; + /** @description Manga User Updates Resource */ + manga_userupdates: { + data?: { + user?: components['schemas']['user_meta']; + /** @description User Score */ + score?: number | null; + /** @description User list status */ + status?: string; + /** @description Number of volumes read */ + volumes_read?: number; + /** @description Total number of volumes */ + volumes_total?: number; + /** @description Number of chapters read */ + chapters_read?: number; + /** @description Total number of chapters */ + chapters_total?: number; + /** @description Last updated date ISO8601 */ + date?: string; + }[]; + } & components['schemas']['pagination']; + }; + responses: { + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + parameters: { + /** @description This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the ″TV (continuing)″ section. (Example: https://myanimelist.net/anime/season/2024/winter)
Example usage: `?continuing` */ + continuing: boolean; + /** @description This is a flag. When supplied it will include entries with the Kids genres in specific endpoints that filter them out by default. You do not need to pass a value to it. e.g usage: `?kids` */ + kids: boolean; + limit: number; + page: number; + /** @description Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true` */ + preliminary: boolean; + /** @description 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw` */ + sfw: boolean; + /** @description Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true` */ + spoilers: boolean; + /** @description This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved` */ + unapproved: boolean; + }; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + getAnimeFullById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns complete anime resource data */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['anime_full']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['anime']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeCharacters: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime characters resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_characters']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeStaff: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime staff resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_staff']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeEpisodes: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of anime episodes */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_episodes']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeEpisodeById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + episode: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a single anime episode resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['anime_episode']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeNews: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of news articles related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_news']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeForum: { + parameters: { + query?: { + /** @description Filter topics */ + filter?: 'all' | 'episode' | 'other'; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of forum topics related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['forum']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeVideos: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns videos related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_videos']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeVideosEpisodes: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns episode videos related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_videos_episodes']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimePictures: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns pictures related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['pictures_variants']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeStatistics: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime statistics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_statistics']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeMoreInfo: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime statistics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['moreinfo']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeRecommendations: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime recommendations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['entry_recommendations']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeUserUpdates: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of users who have added/updated/removed the entry on their list */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_userupdates']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeReviews: { + parameters: { + query?: { + page?: components['parameters']['page']; + /** @description Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true` */ + preliminary?: components['parameters']['preliminary']; + /** @description Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true` */ + spoilers?: components['parameters']['spoilers']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime reviews */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_reviews']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeRelations: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime relations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['relation'][]; + }; + }; + }; + }; + }; + getAnimeThemes: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime themes */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_themes']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeExternal: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime external links */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['external_links']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeStreaming: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime streaming links */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['external_links']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getCharacterFullById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns complete character resource data */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['character_full']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getCharacterById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns character resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['character']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getCharacterAnime: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime that character is in */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['character_anime']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getCharacterManga: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga that character is in */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['character_manga']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getCharacterVoiceActors: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns the character's voice actors */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['character_voice_actors']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getCharacterPictures: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns pictures related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['character_pictures']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getClubsById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Club Resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['club']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getClubMembers: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Club Members Resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['pagination'] & components['schemas']['club_member']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getClubStaff: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Club Staff */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['club_staff']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getClubRelations: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Club Relations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['club_relations']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeGenres: { + parameters: { + query?: { + filter?: components['schemas']['genre_query_filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns entry genres, explicit_genres, themes and demographics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['genres']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaGenres: { + parameters: { + query?: { + filter?: components['schemas']['genre_query_filter']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns entry genres, explicit_genres, themes and demographics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['genres']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMagazines: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + order_by?: components['schemas']['magazines_query_orderby']; + sort?: components['schemas']['search_query_sort']; + /** @description Return entries starting with the given letter */ + letter?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns magazines collection */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['magazines']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaFullById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns complete manga resource data */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['manga_full']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns pictures related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['manga']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaCharacters: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga characters resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_characters']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaNews: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of manga news topics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_news']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaTopics: { + parameters: { + query?: { + /** @description Filter topics */ + filter?: 'all' | 'episode' | 'other'; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of manga forum topics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['forum']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaPictures: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of manga pictures */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_pictures']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaStatistics: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns anime statistics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_statistics']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaMoreInfo: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga moreinfo */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['moreinfo']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaRecommendations: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga recommendations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['entry_recommendations']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaUserUpdates: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga user updates */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_userupdates']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaReviews: { + parameters: { + query?: { + page?: components['parameters']['page']; + /** @description Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true` */ + preliminary?: components['parameters']['preliminary']; + /** @description Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true` */ + spoilers?: components['parameters']['spoilers']; + }; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga reviews */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_reviews']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaRelations: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga relations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['relation'][]; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaExternal: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns manga external links */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['external_links']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getPersonFullById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns complete character resource data */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['person_full']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getPersonById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns pictures related to the entry */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['person']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getPersonAnime: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns person's anime staff positions */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['person_anime']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getPersonVoices: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns person's voice acting roles */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['person_voice_acting_roles']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getPersonManga: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns person's published manga works */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['person_manga']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getPersonPictures: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a list of pictures of the person */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['person_pictures']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getProducerById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns producer resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['producer']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getProducerFullById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns producer resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['producer_full']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getProducerExternal: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns producer's external links */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['external_links']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRandomAnime: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a random anime resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['anime']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRandomManga: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a random manga resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['manga']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRandomCharacters: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a random character resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['character']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRandomPeople: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a random person resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['person']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRandomUsers: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns a random user profile resource */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['user_profile']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRecentAnimeRecommendations: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns recent anime recommendations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['recommendations']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRecentMangaRecommendations: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns recent manga recommendations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['recommendations']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRecentAnimeReviews: { + parameters: { + query?: { + page?: components['parameters']['page']; + /** @description Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true` */ + preliminary?: components['parameters']['preliminary']; + /** @description Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true` */ + spoilers?: components['parameters']['spoilers']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns recent anime reviews */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getRecentMangaReviews: { + parameters: { + query?: { + page?: components['parameters']['page']; + /** @description Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true` */ + preliminary?: components['parameters']['preliminary']; + /** @description Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true` */ + spoilers?: components['parameters']['spoilers']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns recent manga reviews */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getSchedules: { + parameters: { + query?: { + /** @description Filter by day */ + filter?: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday' | 'unknown' | 'other'; + /** @description When supplied, it will filter entries with the `Kids` Genre Demographic. When supplied as `kids=true`, it will return only Kid entries and when supplied as `kids=false`, it will filter out any Kid entries. Defaults to `false`. */ + kids?: 'true' | 'false'; + /** @description 'Safe For Work'. When supplied, it will filter entries with the `Hentai` Genre. When supplied as `sfw=true`, it will return only SFW entries and when supplied as `sfw=false`, it will filter out any Hentai entries. Defaults to `false`. */ + sfw?: 'true' | 'false'; + /** @description This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved` */ + unapproved?: components['parameters']['unapproved']; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns weekly schedule */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['schedules']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getAnimeSearch: { + parameters: { + query?: { + /** @description This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved` */ + unapproved?: components['parameters']['unapproved']; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + type?: components['schemas']['anime_search_query_type']; + score?: number; + /** @description Set a minimum score for results. */ + min_score?: number; + /** @description Set a maximum score for results */ + max_score?: number; + status?: components['schemas']['anime_search_query_status']; + rating?: components['schemas']['anime_search_query_rating']; + /** @description Filter out Adult entries */ + sfw?: boolean; + /** @description Filter by genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3 */ + genres?: string; + /** @description Exclude genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3 */ + genres_exclude?: string; + order_by?: components['schemas']['anime_search_query_orderby']; + sort?: components['schemas']['search_query_sort']; + /** @description Return entries starting with the given letter */ + letter?: string; + /** @description Filter by producer(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3 */ + producers?: string; + /** @description Filter by starting date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01` */ + start_date?: string; + /** @description Filter by ending date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01` */ + end_date?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns search results for anime */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getMangaSearch: { + parameters: { + query?: { + /** @description This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved` */ + unapproved?: components['parameters']['unapproved']; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + type?: components['schemas']['manga_search_query_type']; + score?: number; + /** @description Set a minimum score for results. */ + min_score?: number; + /** @description Set a maximum score for results */ + max_score?: number; + status?: components['schemas']['manga_search_query_status']; + /** @description Filter out Adult entries */ + sfw?: boolean; + /** @description Filter by genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3 */ + genres?: string; + /** @description Exclude genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3 */ + genres_exclude?: string; + order_by?: components['schemas']['manga_search_query_orderby']; + sort?: components['schemas']['search_query_sort']; + /** @description Return entries starting with the given letter */ + letter?: string; + /** @description Filter by magazine(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3 */ + magazines?: string; + /** @description Filter by starting date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01` */ + start_date?: string; + /** @description Filter by ending date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01` */ + end_date?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns search results for manga */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getPeopleSearch: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + order_by?: components['schemas']['people_search_query_orderby']; + sort?: components['schemas']['search_query_sort']; + /** @description Return entries starting with the given letter */ + letter?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns search results for people */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['people_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getCharactersSearch: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + order_by?: components['schemas']['characters_search_query_orderby']; + sort?: components['schemas']['search_query_sort']; + /** @description Return entries starting with the given letter */ + letter?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns search results for characters */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['characters_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUsersSearch: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + gender?: components['schemas']['users_search_query_gender']; + location?: string; + maxAge?: number; + minAge?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns search results for users */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['users_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserById: { + parameters: { + query?: never; + header?: never; + path: { + id: number; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns username by ID search */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['user_by_id']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getClubsSearch: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + type?: components['schemas']['club_search_query_type']; + category?: components['schemas']['club_search_query_category']; + order_by?: components['schemas']['club_search_query_orderby']; + sort?: components['schemas']['search_query_sort']; + /** @description Return entries starting with the given letter */ + letter?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns search results for clubs */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['clubs_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getProducers: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + q?: string; + order_by?: components['schemas']['producers_query_orderby']; + sort?: components['schemas']['search_query_sort']; + /** @description Return entries starting with the given letter */ + letter?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns producers collection */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['producers']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getSeasonNow: { + parameters: { + query?: { + /** @description Entry types */ + filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music'; + /** @description 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw` */ + sfw?: components['parameters']['sfw']; + /** @description This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved` */ + unapproved?: components['parameters']['unapproved']; + /** @description This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the ″TV (continuing)″ section. (Example: https://myanimelist.net/anime/season/2024/winter)
Example usage: `?continuing` */ + continuing?: components['parameters']['continuing']; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns current seasonal anime */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getSeason: { + parameters: { + query?: { + /** @description Entry types */ + filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music'; + /** @description 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw` */ + sfw?: components['parameters']['sfw']; + /** @description This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved` */ + unapproved?: components['parameters']['unapproved']; + /** @description This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the ″TV (continuing)″ section. (Example: https://myanimelist.net/anime/season/2024/winter)
Example usage: `?continuing` */ + continuing?: components['parameters']['continuing']; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path: { + year: number; + season: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns seasonal anime */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getSeasonsList: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns available list of seasons */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['seasons']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getSeasonUpcoming: { + parameters: { + query?: { + /** @description Entry types */ + filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music'; + /** @description 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw` */ + sfw?: components['parameters']['sfw']; + /** @description This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved` */ + unapproved?: components['parameters']['unapproved']; + /** @description This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the ″TV (continuing)″ section. (Example: https://myanimelist.net/anime/season/2024/winter)
Example usage: `?continuing` */ + continuing?: components['parameters']['continuing']; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns upcoming season's anime */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getTopAnime: { + parameters: { + query?: { + type?: components['schemas']['anime_search_query_type']; + filter?: components['schemas']['top_anime_filter']; + rating?: components['schemas']['anime_search_query_rating']; + /** @description Filter out Adult entries */ + sfw?: boolean; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns top anime */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['anime_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getTopManga: { + parameters: { + query?: { + type?: components['schemas']['manga_search_query_type']; + filter?: components['schemas']['top_manga_filter']; + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns top manga */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['manga_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getTopPeople: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns top people */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['people_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getTopCharacters: { + parameters: { + query?: { + page?: components['parameters']['page']; + limit?: components['parameters']['limit']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns top characters */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['characters_search']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getTopReviews: { + parameters: { + query?: { + page?: components['parameters']['page']; + type?: components['schemas']['top_reviews_type_enum']; + /** @description Whether the results include preliminary reviews or not. Defaults to true. */ + preliminary?: boolean; + /** @description Whether the results include reviews with spoilers or not. Defaults to true. */ + spoilers?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns top reviews */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: { + data?: ( + | ({ + user?: components['schemas']['user_meta']; + } & { + anime?: components['schemas']['anime_meta']; + } & components['schemas']['anime_review']) + | ({ + user?: components['schemas']['user_meta']; + } & { + manga?: components['schemas']['manga_meta']; + } & components['schemas']['manga_review']) + )[]; + } & components['schemas']['pagination']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserFullProfile: { + parameters: { + query?: never; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns complete user resource data */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['user_profile_full']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserProfile: { + parameters: { + query?: never; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user profile */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['user_profile']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserStatistics: { + parameters: { + query?: never; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user statistics */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['user_statistics']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserFavorites: { + parameters: { + query?: never; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user favorites */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: components['schemas']['user_favorites']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserUpdates: { + parameters: { + query?: never; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user updates */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['user_updates']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserAbout: { + parameters: { + query?: never; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user about in raw HTML */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['user_about']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserHistory: { + parameters: { + query?: { + type?: 'anime' | 'manga'; + }; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user history (past 30 days) */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['user_history']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserFriends: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user friends */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['user_friends']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserAnimelist: { + parameters: { + query?: { + status?: components['schemas']['user_anime_list_status_filter']; + }; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user anime list */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserMangaList: { + parameters: { + query?: { + status?: components['schemas']['user_manga_list_status_filter']; + }; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user manga list */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserReviews: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user reviews */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': { + data?: { + data?: ( + | ({ + user?: components['schemas']['user_meta']; + } & { + anime?: components['schemas']['anime_meta']; + } & components['schemas']['anime_review']) + | ({ + user?: components['schemas']['user_meta']; + } & { + manga?: components['schemas']['manga_meta']; + } & components['schemas']['manga_review']) + )[]; + } & components['schemas']['pagination']; + }; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserRecommendations: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Recent Anime Recommendations */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['recommendations']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserClubs: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user clubs */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['user_clubs']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getUserExternal: { + parameters: { + query?: never; + header?: never; + path: { + username: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns user's external links */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['external_links']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getWatchRecentEpisodes: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Recently Added Episodes */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['watch_episodes']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getWatchPopularEpisodes: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Popular Episodes */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['watch_episodes']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getWatchRecentPromos: { + parameters: { + query?: { + page?: components['parameters']['page']; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Recently Added Promotional Videos */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['watch_promos']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getWatchPopularPromos: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Returns Popular Promotional Videos */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['watch_promos']; + }; + }; + /** @description Error: Bad request. When required parameters were not supplied. */ + 400: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; +} diff --git a/src/api/schemas/OMDb.json b/src/api/schemas/OMDb.json new file mode 100644 index 0000000..5d31eac --- /dev/null +++ b/src/api/schemas/OMDb.json @@ -0,0 +1,269 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "OMDb API", + "description": "This API requires authorization, you can get a free key here: [http://omdbapi.com/apikey.aspx](http://omdbapi.com/apikey.aspx)", + "termsOfService": "http://omdbapi.com/legal.htm", + "contact": { + "email": "bfritz@fadingsignal.com" + }, + "license": { + "name": "CC BY-NC 4.0", + "url": "https://creativecommons.org/licenses/by-nc/4.0/" + }, + "version": "1.0" + }, + "externalDocs": { + "description": "Find out more about Swagger", + "url": "http://swagger.io" + }, + "servers": [ + { + "url": "http://omdbapi.com/" + }, + { + "url": "https://omdbapi.com/" + } + ], + "security": [ + { + "APIKeyQueryParam": [] + } + ], + "tags": [ + { + "name": "Title Parameter", + "description": "e.g. ?t=title" + }, + { + "name": "ID Parameter", + "description": "e.g. ?i=tt0000001" + }, + { + "name": "Search Parameter", + "description": "e.g. ?s=title" + } + ], + "paths": { + "/?t": { + "get": { + "tags": ["Title Parameter"], + "summary": "Returns the most popular match for a given title", + "operationId": "getTitle", + "parameters": [ + { + "name": "t", + "in": "query", + "description": "Title of movie or series", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "y", + "in": "query", + "description": "Year of release", + "schema": { + "type": "integer" + } + }, + { + "name": "type", + "in": "query", + "description": "Return movie or series", + "schema": { + "type": "string", + "enum": ["movie", "series"] + } + }, + { + "name": "plot", + "in": "query", + "description": "Return short or full plot", + "schema": { + "type": "string", + "enum": ["short", "full"] + } + }, + { + "name": "r", + "in": "query", + "description": "The response type to return", + "schema": { + "type": "string", + "enum": ["json", "xml"] + } + }, + { + "name": "callback", + "in": "query", + "description": "JSONP callback name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": {} + }, + "401": { + "description": "Not authenticated", + "content": {} + } + }, + "security": [ + { + "APIKeyQueryParam": [] + } + ] + } + }, + "/?i": { + "get": { + "tags": ["ID Parameter"], + "summary": "Returns a single result based on the ID provided", + "operationId": "getId", + "parameters": [ + { + "name": "i", + "in": "query", + "description": "A valid IMDb ID (e.g. tt0000001)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "plot", + "in": "query", + "description": "Return short or full plot", + "schema": { + "type": "string", + "enum": ["short", "full"] + } + }, + { + "name": "r", + "in": "query", + "description": "The response type to return", + "schema": { + "type": "string", + "enum": ["json", "xml"] + } + }, + { + "name": "callback", + "in": "query", + "description": "JSONP callback name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": {} + }, + "401": { + "description": "Not authenticated", + "content": {} + } + }, + "security": [ + { + "APIKeyQueryParam": [] + } + ] + } + }, + "/?s": { + "get": { + "tags": ["Search Parameter"], + "summary": "Returns an array of results for a given title", + "operationId": "titleSearch", + "parameters": [ + { + "name": "s", + "in": "query", + "description": "Title of movie or series", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "y", + "in": "query", + "description": "Year of release", + "schema": { + "type": "integer" + } + }, + { + "name": "type", + "in": "query", + "description": "Return movie or series", + "schema": { + "type": "string", + "enum": ["movie", "series"] + } + }, + { + "name": "r", + "in": "query", + "description": "The response type to return", + "schema": { + "type": "string", + "enum": ["json", "xml"] + } + }, + { + "name": "page", + "in": "query", + "description": "Page number to return", + "schema": { + "type": "integer" + } + }, + { + "name": "callback", + "in": "query", + "description": "JSONP callback name", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": {} + }, + "401": { + "description": "Not authenticated", + "content": {} + } + }, + "security": [ + { + "APIKeyQueryParam": [] + } + ] + } + } + }, + "components": { + "securitySchemes": { + "APIKeyQueryParam": { + "type": "apiKey", + "name": "apikey", + "in": "query" + } + } + }, + "x-original-swagger-version": "2.0" +} diff --git a/src/api/schemas/OMDb.ts b/src/api/schemas/OMDb.ts new file mode 100644 index 0000000..4142fa4 --- /dev/null +++ b/src/api/schemas/OMDb.ts @@ -0,0 +1,180 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + '/?t': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Returns the most popular match for a given title */ + get: operations['getTitle']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/?i': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Returns a single result based on the ID provided */ + get: operations['getId']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/?s': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Returns an array of results for a given title */ + get: operations['titleSearch']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: never; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + getTitle: { + parameters: { + query: { + /** @description Title of movie or series */ + t: string; + /** @description Year of release */ + y?: number; + /** @description Return movie or series */ + type?: 'movie' | 'series'; + /** @description Return short or full plot */ + plot?: 'short' | 'full'; + /** @description The response type to return */ + r?: 'json' | 'xml'; + /** @description JSONP callback name */ + callback?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful operation */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Not authenticated */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + getId: { + parameters: { + query: { + /** @description A valid IMDb ID (e.g. tt0000001) */ + i: string; + /** @description Return short or full plot */ + plot?: 'short' | 'full'; + /** @description The response type to return */ + r?: 'json' | 'xml'; + /** @description JSONP callback name */ + callback?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful operation */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Not authenticated */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + titleSearch: { + parameters: { + query: { + /** @description Title of movie or series */ + s: string; + /** @description Year of release */ + y?: number; + /** @description Return movie or series */ + type?: 'movie' | 'series'; + /** @description The response type to return */ + r?: 'json' | 'xml'; + /** @description Page number to return */ + page?: number; + /** @description JSONP callback name */ + callback?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful operation */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Not authenticated */ + 401: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; +} diff --git a/src/api/schemas/OpenLibrary.json b/src/api/schemas/OpenLibrary.json new file mode 100644 index 0000000..6258f57 --- /dev/null +++ b/src/api/schemas/OpenLibrary.json @@ -0,0 +1,602 @@ +{ + "components": { + "schemas": { + "HTTPValidationError": { + "properties": { + "detail": { + "items": { + "$ref": "#/components/schemas/ValidationError" + }, + "title": "Detail", + "type": "array" + } + }, + "title": "HTTPValidationError", + "type": "object" + }, + "ValidationError": { + "properties": { + "loc": { + "items": { + "type": "string" + }, + "title": "Location", + "type": "array" + }, + "msg": { + "title": "Message", + "type": "string" + }, + "type": { + "title": "Error Type", + "type": "string" + } + }, + "required": ["loc", "msg", "type"], + "title": "ValidationError", + "type": "object" + } + } + }, + "info": { + "description": "- These are still in development and may not be perfect\n- Contribute by proposing edits to [openapi.json](https://github.com/internetarchive/openlibrary/blob/master/static/openapi.json)\n- Please do not use our APIs for bulk downloads, see [dev center](https://openlibrary.org/developers/api)", + "title": "Open Library API", + "version": "0.1.0" + }, + "openapi": "3.0.2", + "paths": { + "/api/books": { + "get": { + "operationId": "read_api_books_api_books_get", + "parameters": [ + { + "examples": { + "isbn": { + "value": "ISBN:0201558025" + }, + "multiple": { + "value": "ISBN:9781408113479,OCLC:420517" + }, + "oclc": { + "value": "OCLC:263296519" + } + }, + "in": "query", + "name": "bibkeys", + "required": true, + "schema": { + "title": "Bibkeys", + "type": "string" + } + }, + { + "description": "Specifies the response format. Possible values are json and javascript. When not specified the format is javascript.", + "in": "query", + "name": "format", + "required": false, + "schema": { + "default": "json", + "title": "Format", + "type": "string" + } + }, + { + "description": "The name of the JavaScript function to call with the result. This is considered only when the format is javascript.", + "in": "query", + "name": "callback", + "required": false, + "schema": { + "title": "Callback" + } + }, + { + "description": "Decides what information to provide for each matched bib_key. Possible values are viewapi and data. The default value is viewapi.", + "in": "query", + "name": "jscmd", + "required": false, + "schema": { + "default": "viewapi", + "title": "Jscmd", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Api Books", + "tags": ["books"] + } + }, + "/api/volumes/brief/{key_type}/{value}.json": { + "get": { + "operationId": "read_api_volumes_brief_api_volumes_brief__key_type___value__json_get", + "parameters": [ + { + "in": "path", + "name": "key_type", + "required": true, + "schema": { + "title": "Key Type" + } + }, + { + "in": "path", + "name": "value", + "required": true, + "schema": { + "title": "Value" + } + }, + { + "in": "query", + "name": "callback", + "required": false, + "schema": { + "title": "Callback" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Api Volumes Brief", + "tags": ["books"] + } + }, + "/authors/{olid}.json": { + "get": { + "operationId": "read_authors_authors__olid__json_get", + "parameters": [ + { + "in": "path", + "name": "olid", + "required": true, + "schema": { + "title": "Olid" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Authors", + "tags": ["authors"] + } + }, + "/authors/{olid}/works.json": { + "get": { + "operationId": "read_authors_works_authors__olid__works_json_get", + "parameters": [ + { + "in": "path", + "name": "olid", + "required": true, + "schema": { + "title": "Olid" + } + }, + { + "in": "query", + "name": "limit", + "required": false, + "schema": { + "title": "Limit", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Authors Works", + "tags": ["authors"] + } + }, + "/books/{olid}": { + "get": { + "operationId": "read_books_books__olid__get", + "parameters": [ + { + "in": "path", + "name": "olid", + "required": true, + "schema": { + "example": "OL53924W", + "title": "Olid" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Books", + "tags": ["books"] + } + }, + "/covers/{key_type}/{value}-{size}.jpg": { + "get": { + "operationId": "read_covers_key_type_value_size_jpeg_covers__key_type___value___size__jpg_get", + "parameters": [ + { + "in": "path", + "name": "key_type", + "required": true, + "schema": { + "title": "Key Type" + } + }, + { + "in": "path", + "name": "value", + "required": true, + "schema": { + "title": "Value" + } + }, + { + "in": "path", + "name": "size", + "required": true, + "schema": { + "title": "Size" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Covers Key Type Value Size Jpeg", + "tags": ["covers"] + } + }, + "/isbn/{isbn}": { + "get": { + "operationId": "read_isbn_isbn__isbn__get", + "parameters": [ + { + "in": "path", + "name": "isbn", + "required": true, + "schema": { + "title": "Isbn" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Isbn", + "tags": ["books"] + } + }, + "/search.json": { + "get": { + "operationId": "read_search_json_search_json_get", + "parameters": [ + { + "in": "query", + "name": "q", + "required": true, + "schema": { + "title": "Q" + } + }, + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "title": "Page", + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Search Json", + "tags": ["search"] + } + }, + "/search/authors.json": { + "get": { + "operationId": "read_search_authors_json_search_authors_json_get", + "parameters": [ + { + "in": "query", + "name": "q", + "required": true, + "schema": { + "title": "Q" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Search Authors Json", + "tags": ["search"] + } + }, + "/subjects/{subject}.json": { + "get": { + "operationId": "read_subjects_subjects__subject__json_get", + "parameters": [ + { + "in": "path", + "name": "subject", + "required": true, + "schema": { + "title": "Subject" + } + }, + { + "in": "query", + "name": "details", + "required": false, + "schema": { + "default": false, + "title": "Details", + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Subjects", + "tags": ["subjects"] + } + }, + "/works/{olid}": { + "get": { + "operationId": "read_works_works__olid__get", + "parameters": [ + { + "in": "path", + "name": "olid", + "required": true, + "schema": { + "title": "Olid" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": {} + } + }, + "description": "Successful Response" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + }, + "description": "Validation Error" + } + }, + "summary": "Read Works", + "tags": ["books"] + } + } + }, + "tags": [ + { + "description": "Retrieve a specific work or edition by identifier", + "externalDocs": { + "description": "Find out more", + "url": "https://openlibrary.org/dev/docs/api/books" + }, + "name": "books" + }, + { + "description": "Retrieve an author and their works by author identifier", + "externalDocs": { + "description": "Find out more", + "url": "https://openlibrary.org/dev/docs/api/authors" + }, + "name": "authors" + }, + { + "description": "Search results for books, authors, and more", + "externalDocs": { + "description": "Find out more", + "url": "https://openlibrary.org/dev/docs/api/search" + }, + "name": "search" + }, + { + "description": "Fetch book covers by ISBN or Open Library identifier", + "externalDocs": { + "description": "Find out more", + "url": "https://openlibrary.org/dev/docs/api/covers" + }, + "name": "covers" + }, + { + "description": "Fetch books by subject name ", + "externalDocs": { + "description": "Find out more", + "url": "https://openlibrary.org/dev/docs/api/subjects" + }, + "name": "subjects" + } + ] +} diff --git a/src/api/schemas/OpenLibrary.ts b/src/api/schemas/OpenLibrary.ts new file mode 100644 index 0000000..aa6fbba --- /dev/null +++ b/src/api/schemas/OpenLibrary.ts @@ -0,0 +1,578 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + '/api/books': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Api Books */ + get: operations['read_api_books_api_books_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/api/volumes/brief/{key_type}/{value}.json': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Api Volumes Brief */ + get: operations['read_api_volumes_brief_api_volumes_brief__key_type___value__json_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/authors/{olid}.json': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Authors */ + get: operations['read_authors_authors__olid__json_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/authors/{olid}/works.json': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Authors Works */ + get: operations['read_authors_works_authors__olid__works_json_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/books/{olid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Books */ + get: operations['read_books_books__olid__get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/covers/{key_type}/{value}-{size}.jpg': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Covers Key Type Value Size Jpeg */ + get: operations['read_covers_key_type_value_size_jpeg_covers__key_type___value___size__jpg_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/isbn/{isbn}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Isbn */ + get: operations['read_isbn_isbn__isbn__get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/search.json': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Search Json */ + get: operations['read_search_json_search_json_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/search/authors.json': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Search Authors Json */ + get: operations['read_search_authors_json_search_authors_json_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/subjects/{subject}.json': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Subjects */ + get: operations['read_subjects_subjects__subject__json_get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + '/works/{olid}': { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Read Works */ + get: operations['read_works_works__olid__get']; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + /** HTTPValidationError */ + HTTPValidationError: { + /** Detail */ + detail?: components['schemas']['ValidationError'][]; + }; + /** ValidationError */ + ValidationError: { + /** Location */ + loc: string[]; + /** Message */ + msg: string; + /** Error Type */ + type: string; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + read_api_books_api_books_get: { + parameters: { + query: { + bibkeys: string; + /** @description Specifies the response format. Possible values are json and javascript. When not specified the format is javascript. */ + format?: string; + /** @description The name of the JavaScript function to call with the result. This is considered only when the format is javascript. */ + callback?: unknown; + /** @description Decides what information to provide for each matched bib_key. Possible values are viewapi and data. The default value is viewapi. */ + jscmd?: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_api_volumes_brief_api_volumes_brief__key_type___value__json_get: { + parameters: { + query?: { + callback?: unknown; + }; + header?: never; + path: { + key_type: unknown; + value: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_authors_authors__olid__json_get: { + parameters: { + query?: never; + header?: never; + path: { + olid: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_authors_works_authors__olid__works_json_get: { + parameters: { + query?: { + limit?: number; + }; + header?: never; + path: { + olid: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_books_books__olid__get: { + parameters: { + query?: never; + header?: never; + path: { + olid: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_covers_key_type_value_size_jpeg_covers__key_type___value___size__jpg_get: { + parameters: { + query?: never; + header?: never; + path: { + key_type: unknown; + value: unknown; + size: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_isbn_isbn__isbn__get: { + parameters: { + query?: never; + header?: never; + path: { + isbn: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_search_json_search_json_get: { + parameters: { + query: { + q: unknown; + page?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_search_authors_json_search_authors_json_get: { + parameters: { + query: { + q: unknown; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_subjects_subjects__subject__json_get: { + parameters: { + query?: { + details?: boolean; + }; + header?: never; + path: { + subject: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; + read_works_works__olid__get: { + parameters: { + query?: never; + header?: never; + path: { + olid: unknown; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + 'application/json': components['schemas']['HTTPValidationError']; + }; + }; + }; + }; +} diff --git a/src/main.ts b/src/main.ts index 4d7392e..c9853af 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,6 +3,7 @@ import { requestUrl, normalizePath } from 'obsidian'; // Add requestUrl import import type { MediaType } from 'src/utils/MediaType'; import { APIManager } from './api/APIManager'; import { BoardGameGeekAPI } from './api/apis/BoardGameGeekAPI'; +import { ComicVineAPI } from './api/apis/ComicVineAPI'; import { GiantBombAPI } from './api/apis/GiantBombAPI'; import { MALAPI } from './api/apis/MALAPI'; import { MALAPIManga } from './api/apis/MALAPIManga'; @@ -12,9 +13,8 @@ import { OMDbAPI } from './api/apis/OMDbAPI'; import { OpenLibraryAPI } from './api/apis/OpenLibraryAPI'; import { SteamAPI } from './api/apis/SteamAPI'; import { WikipediaAPI } from './api/apis/WikipediaAPI'; -import { ComicVineAPI } from './api/apis/ComicVineAPI'; -import { MediaDbFolderImportModal } from './modals/MediaDbFolderImportModal'; import { ConfirmOverwriteModal } from './modals/ConfirmOverwriteModal'; +import { MediaDbFolderImportModal } from './modals/MediaDbFolderImportModal'; import type { MediaTypeModel } from './models/MediaTypeModel'; import { PropertyMapper } from './settings/PropertyMapper'; import { PropertyMapping, PropertyMappingModel } from './settings/PropertyMapping'; @@ -123,7 +123,7 @@ export default class MediaDbPlugin extends Plugin { return false; } if (!checking) { - this.updateActiveNote(false); + void this.updateActiveNote(false); } return true; }, @@ -136,7 +136,7 @@ export default class MediaDbPlugin extends Plugin { return false; } if (!checking) { - this.updateActiveNote(true); + void this.updateActiveNote(true); } return true; }, @@ -150,7 +150,7 @@ export default class MediaDbPlugin extends Plugin { return false; } if (!checking) { - this.createLinkWithSearchModal(); + void this.createLinkWithSearchModal(); } return true; }, @@ -213,7 +213,7 @@ export default class MediaDbPlugin extends Plugin { apiSearchResults = apiSearchResults.filter(x => types.contains(x.type)); let selectResults: MediaTypeModel[]; - let proceed: boolean = false; + const proceed: boolean = false; while (!proceed) { selectResults = @@ -247,7 +247,7 @@ export default class MediaDbPlugin extends Plugin { } let selectResults: MediaTypeModel[]; - let proceed: boolean = false; + const proceed: boolean = false; while (!proceed) { selectResults = @@ -322,9 +322,7 @@ export default class MediaDbPlugin extends Plugin { const fileContent = await this.generateMediaDbNoteContents(mediaTypeModel, options); - if (!options.folder) { - options.folder = await this.mediaTypeManager.getFolder(mediaTypeModel, this.app); - } + options.folder ??= await this.mediaTypeManager.getFolder(mediaTypeModel, this.app); const targetFile = await this.createNote(this.mediaTypeManager.getFileName(mediaTypeModel), fileContent, options); @@ -347,7 +345,7 @@ export default class MediaDbPlugin extends Plugin { if (mediaTypeModel.image && typeof mediaTypeModel.image === 'string' && mediaTypeModel.image.startsWith('http')) { try { const imageUrl = mediaTypeModel.image; - const imageExt = imageUrl.split('.').pop()?.split(/\#|\?/)[0] || 'jpg'; + const imageExt = imageUrl.split('.').pop()?.split(/#|\?/)[0] ?? 'jpg'; const imageFileName = `${replaceIllegalFileNameCharactersInString(`${mediaTypeModel.type}_${mediaTypeModel.title} (${mediaTypeModel.year})`)}.${imageExt}`; const imagePath = normalizePath(`${this.settings.imageFolder}/${imageFileName}`); @@ -441,7 +439,7 @@ export default class MediaDbPlugin extends Plugin { // Update updated front matter with entries from the old front matter, if it isn't defined in the new front matter Object.keys(previousMetadata).forEach(key => { - const value = previousMetadata[key]; + const value: unknown = previousMetadata[key]; if (!frontMatter[key] && value) { frontMatter[key] = value; @@ -450,17 +448,9 @@ export default class MediaDbPlugin extends Plugin { } // Ensure that id, type, and dataSource are defined - if (!frontMatter.id) { - frontMatter.id = mediaTypeModel.id; - } - - if (!frontMatter.type) { - frontMatter.type = mediaTypeModel.type; - } - - if (!frontMatter.dataSource) { - frontMatter.dataSource = mediaTypeModel.dataSource; - } + frontMatter.id ??= mediaTypeModel.id; + frontMatter.type ??= mediaTypeModel.type; + frontMatter.dataSource ??= mediaTypeModel.dataSource; if (this.settings.enableTemplaterIntegration && hasTemplaterPlugin(this.app)) { // Only support stringifyYaml for templater plugin @@ -478,7 +468,7 @@ export default class MediaDbPlugin extends Plugin { return { fileMetadata: fileMetadata, fileContent: fileContent }; } - const attachFileMetadata: any = this.getMetadataFromFileCache(fileToAttach); + const attachFileMetadata = this.getMetadataFromFileCache(fileToAttach); // TODO: better object merging fileMetadata = Object.assign(attachFileMetadata, fileMetadata); @@ -496,7 +486,7 @@ export default class MediaDbPlugin extends Plugin { return { fileMetadata: fileMetadata, fileContent: fileContent }; } - const templateMetadata: Metadata = this.getMetaDataFromFileContent(template); + const templateMetadata = this.getMetaDataFromFileContent(template); // TODO: better object merging fileMetadata = Object.assign(templateMetadata, fileMetadata); @@ -522,7 +512,7 @@ export default class MediaDbPlugin extends Plugin { frontMatter = frontMatter.substring(4); frontMatter = frontMatter.substring(0, frontMatter.length - 3); - metadata = parseYaml(frontMatter); + metadata = parseYaml(frontMatter) as Metadata; if (!metadata) { metadata = {}; @@ -645,11 +635,11 @@ export default class MediaDbPlugin extends Plugin { continue; } - const metadata: any = this.getMetadataFromFileCache(file); + const metadata = this.getMetadataFromFileCache(file); const title = metadata[titleFieldName]; - if (!title) { - erroredFiles.push({ filePath: file.path, error: `metadata field '${titleFieldName}' not found or empty` }); + if (!title || typeof title !== 'string') { + erroredFiles.push({ filePath: file.path, error: `metadata field '${titleFieldName}' not found, empty, or not a string` }); continue; } @@ -715,7 +705,7 @@ export default class MediaDbPlugin extends Plugin { async loadSettings(): Promise { // console.log(DEFAULT_SETTINGS); - const diskSettings: MediaDbPluginSettings = await this.loadData(); + const diskSettings: MediaDbPluginSettings = (await this.loadData()) as MediaDbPluginSettings; const defaultSettings: MediaDbPluginSettings = getDefaultSettings(this); const loadedSettings: MediaDbPluginSettings = Object.assign({}, defaultSettings, diskSettings); diff --git a/src/modals/ConfirmOverwriteModal.ts b/src/modals/ConfirmOverwriteModal.ts index 7da0c17..e300c32 100644 --- a/src/modals/ConfirmOverwriteModal.ts +++ b/src/modals/ConfirmOverwriteModal.ts @@ -12,7 +12,7 @@ export class ConfirmOverwriteModal extends Modal { this.onSubmit = onSubmit; } - onOpen() { + onOpen(): void { const { contentEl } = this; contentEl.createEl('h2', { text: 'File already exists' }); contentEl.createEl('p', { text: `The file "${this.fileName}" already exists. Do you want to overwrite it?` }); @@ -36,7 +36,7 @@ export class ConfirmOverwriteModal extends Modal { }); } - onClose() { + onClose(): void { const { contentEl } = this; contentEl.empty(); this.onSubmit(this.result); diff --git a/src/modals/MediaDbAdvancedSearchModal.ts b/src/modals/MediaDbAdvancedSearchModal.ts index d6aa564..7a9a6f7 100644 --- a/src/modals/MediaDbAdvancedSearchModal.ts +++ b/src/modals/MediaDbAdvancedSearchModal.ts @@ -1,7 +1,6 @@ import type { ButtonComponent } from 'obsidian'; import { Modal, Notice, Setting, TextComponent, ToggleComponent } from 'obsidian'; import type MediaDbPlugin from '../main'; -import type { MediaTypeModel } from '../models/MediaTypeModel'; import type { AdvancedSearchModalData, AdvancedSearchModalOptions } from '../utils/ModalHelper'; import { ADVANCED_SEARCH_MODAL_DEFAULT_OPTIONS } from '../utils/ModalHelper'; @@ -39,7 +38,7 @@ export class MediaDbAdvancedSearchModal extends Modal { keyPressCallback(event: KeyboardEvent): void { if (event.key === 'Enter') { - this.search(); + void this.search(); } } @@ -119,7 +118,7 @@ export class MediaDbAdvancedSearchModal extends Modal { btn.setButtonText('Ok'); btn.setCta(); btn.onClick(() => { - this.search(); + void this.search(); }); btn.buttonEl.addClass('media-db-plugin-button'); this.searchBtn = btn; diff --git a/src/modals/MediaDbIdSearchModal.ts b/src/modals/MediaDbIdSearchModal.ts index e7ee81c..c3bc3d4 100644 --- a/src/modals/MediaDbIdSearchModal.ts +++ b/src/modals/MediaDbIdSearchModal.ts @@ -1,7 +1,6 @@ import type { ButtonComponent } from 'obsidian'; import { DropdownComponent, Modal, Notice, Setting, TextComponent } from 'obsidian'; import type MediaDbPlugin from '../main'; -import type { MediaTypeModel } from '../models/MediaTypeModel'; import type { IdSearchModalData, IdSearchModalOptions } from '../utils/ModalHelper'; import { ID_SEARCH_MODAL_DEFAULT_OPTIONS } from '../utils/ModalHelper'; @@ -24,7 +23,7 @@ export class MediaDbIdSearchModal extends Modal { this.plugin = plugin; this.title = idSearchModalOptions.modalTitle ?? ''; - this.selectedApi = idSearchModalOptions.preselectedAPI || plugin.apiManager.apis[0].apiName; + this.selectedApi = idSearchModalOptions.preselectedAPI ?? plugin.apiManager.apis[0].apiName; this.query = ''; this.isBusy = false; } @@ -39,7 +38,7 @@ export class MediaDbIdSearchModal extends Modal { keyPressCallback(event: KeyboardEvent): void { if (event.key === 'Enter') { - this.search(); + void this.search(); } } @@ -105,7 +104,7 @@ export class MediaDbIdSearchModal extends Modal { btn.setButtonText('Ok'); btn.setCta(); btn.onClick(() => { - this.search(); + void this.search(); }); btn.buttonEl.addClass('media-db-plugin-button'); this.searchBtn = btn; diff --git a/src/modals/MediaDbPreviewModal.ts b/src/modals/MediaDbPreviewModal.ts index aa7f707..533730e 100644 --- a/src/modals/MediaDbPreviewModal.ts +++ b/src/modals/MediaDbPreviewModal.ts @@ -1,4 +1,3 @@ -import type { ButtonComponent } from 'obsidian'; import { Component, MarkdownRenderer, Modal, Setting } from 'obsidian'; import type MediaDbPlugin from 'src/main'; import type { MediaTypeModel } from 'src/models/MediaTypeModel'; diff --git a/src/modals/MediaDbSearchModal.ts b/src/modals/MediaDbSearchModal.ts index f7f6d8a..c4bb7d6 100644 --- a/src/modals/MediaDbSearchModal.ts +++ b/src/modals/MediaDbSearchModal.ts @@ -1,7 +1,6 @@ import type { ButtonComponent } from 'obsidian'; import { Modal, Notice, Setting, TextComponent, ToggleComponent } from 'obsidian'; import type MediaDbPlugin from '../main'; -import type { MediaTypeModel } from '../models/MediaTypeModel'; import type { MediaType } from '../utils/MediaType'; import { MEDIA_TYPES } from '../utils/MediaTypeManager'; import type { SearchModalData, SearchModalOptions } from '../utils/ModalHelper'; @@ -42,7 +41,7 @@ export class MediaDbSearchModal extends Modal { keyPressCallback(event: KeyboardEvent): void { if (event.key === 'Enter') { - this.search(); + void this.search(); } } @@ -131,7 +130,7 @@ export class MediaDbSearchModal extends Modal { btn.setButtonText('Ok'); btn.setCta(); btn.onClick(() => { - this.search(); + void this.search(); }); btn.buttonEl.addClass('media-db-plugin-button'); this.searchBtn = btn; diff --git a/src/modals/SelectModal.ts b/src/modals/SelectModal.ts index 596cb15..de2f0d1 100644 --- a/src/modals/SelectModal.ts +++ b/src/modals/SelectModal.ts @@ -54,7 +54,7 @@ export abstract class SelectModal extends Modal { this.scope.register([], 'Enter', () => this.submit()); } - abstract renderElement(value: T, el: HTMLElement): any; + abstract renderElement(value: T, el: HTMLElement): void; abstract submit(): void; @@ -76,7 +76,7 @@ export abstract class SelectModal extends Modal { } } - async onOpen(): Promise { + onOpen(): void { const { contentEl, titleEl } = this; titleEl.createEl('h2', { text: this.title }); diff --git a/src/models/BoardGameModel.ts b/src/models/BoardGameModel.ts index 57fdaa9..e782137 100644 --- a/src/models/BoardGameModel.ts +++ b/src/models/BoardGameModel.ts @@ -43,7 +43,7 @@ export class BoardGameModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/models/BookModel.ts b/src/models/BookModel.ts index 3f9149f..e75da93 100644 --- a/src/models/BookModel.ts +++ b/src/models/BookModel.ts @@ -43,7 +43,7 @@ export class BookModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/models/ComicMangaModel.ts b/src/models/ComicMangaModel.ts index 5677d72..46f1deb 100644 --- a/src/models/ComicMangaModel.ts +++ b/src/models/ComicMangaModel.ts @@ -53,7 +53,7 @@ export class ComicMangaModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/models/GameModel.ts b/src/models/GameModel.ts index 35fb3b1..5661f6e 100644 --- a/src/models/GameModel.ts +++ b/src/models/GameModel.ts @@ -39,7 +39,7 @@ export class GameModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/models/MovieModel.ts b/src/models/MovieModel.ts index bbf7cb5..75652ca 100644 --- a/src/models/MovieModel.ts +++ b/src/models/MovieModel.ts @@ -51,7 +51,7 @@ export class MovieModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/models/MusicReleaseModel.ts b/src/models/MusicReleaseModel.ts index 24f6816..8f2e6b9 100644 --- a/src/models/MusicReleaseModel.ts +++ b/src/models/MusicReleaseModel.ts @@ -28,7 +28,7 @@ export class MusicReleaseModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/models/SeriesModel.ts b/src/models/SeriesModel.ts index c13d90d..a49f618 100644 --- a/src/models/SeriesModel.ts +++ b/src/models/SeriesModel.ts @@ -55,7 +55,7 @@ export class SeriesModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/models/WikiModel.ts b/src/models/WikiModel.ts index a192ff6..ee49c2d 100644 --- a/src/models/WikiModel.ts +++ b/src/models/WikiModel.ts @@ -24,7 +24,7 @@ export class WikiModel extends MediaTypeModel { migrateObject(this, obj, this); - if (!obj.hasOwnProperty('userData')) { + if (!Object.hasOwn(obj, 'userData')) { migrateObject(this.userData, obj, this.userData); } diff --git a/src/settings/PropertyMapper.ts b/src/settings/PropertyMapper.ts index e3be2c5..533399c 100644 --- a/src/settings/PropertyMapper.ts +++ b/src/settings/PropertyMapper.ts @@ -1,3 +1,4 @@ +import type { MediaType } from 'src/utils/MediaType'; import type MediaDbPlugin from '../main'; import { MEDIA_TYPES } from '../utils/MediaTypeManager'; import { PropertyMappingOption } from './PropertyMapping'; @@ -16,7 +17,7 @@ export class PropertyMapper { * @param obj */ convertObject(obj: Record): Record { - if (!obj.hasOwnProperty('type')) { + if (!Object.hasOwn(obj, 'type')) { return obj; } @@ -58,7 +59,7 @@ export class PropertyMapper { * @param obj */ convertObjectBack(obj: Record): Record { - if (!obj.hasOwnProperty('type')) { + if (!Object.hasOwn(obj, 'type')) { return obj; } @@ -66,7 +67,7 @@ export class PropertyMapper { obj.type = 'comicManga'; console.debug(`MDB | updated metadata type`, obj.type); } - if (MEDIA_TYPES.contains(obj.type as any)) { + if (MEDIA_TYPES.contains(obj.type as MediaType)) { return obj; } diff --git a/src/settings/PropertyMappingModelComponent.svelte b/src/settings/PropertyMappingModelComponent.svelte index 0018d75..83883e8 100644 --- a/src/settings/PropertyMappingModelComponent.svelte +++ b/src/settings/PropertyMappingModelComponent.svelte @@ -1,6 +1,4 @@