UNPKG

streaming-availability

Version:

Streaming Availability API allows getting streaming availability information of movies and series; and querying the list of available shows on streaming services such as Netflix, Disney+, Apple TV, Max and Hulu across 60 countries!

300 lines (290 loc) 9.97 kB
/* tslint:disable */ /* eslint-disable */ /** * Streaming Availability API * Streaming Availability API allows getting streaming availability information of movies and series; and querying the list of available shows on streaming services such as Netflix, Disney+, Apple TV, Max and Hulu across 60 countries! * * The version of the OpenAPI document: 4.1.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime'; import type { Genre } from './Genre'; import { GenreFromJSON, GenreFromJSONTyped, GenreToJSON, } from './Genre'; import type { Season } from './Season'; import { SeasonFromJSON, SeasonFromJSONTyped, SeasonToJSON, } from './Season'; import type { ShowImageSet } from './ShowImageSet'; import { ShowImageSetFromJSON, ShowImageSetFromJSONTyped, ShowImageSetToJSON, } from './ShowImageSet'; import type { ShowType } from './ShowType'; import { ShowTypeFromJSON, ShowTypeFromJSONTyped, ShowTypeToJSON, } from './ShowType'; import type { StreamingOption } from './StreamingOption'; import { StreamingOptionFromJSON, StreamingOptionFromJSONTyped, StreamingOptionToJSON, } from './StreamingOption'; /** * A show object represents a movie or a series. Type of the show is determined by the showType property, * which is either movie or series. Based on this type, some properties are omitted, * for example a movie does not have seasonCount and episodeCount properties. * * Show object contains the details such as the title, overview, genres, cast, rating and images. * You can find the streaming availability information under streamingOptions property. * Each streaming option contains the service info, deep link, video quality, available audios and subtitles * and more. It also includes the price if the show is available to buy or rent; * and addon info if the show is available via an addon (such as Apple TV Channels, Prime Video Channels etc.). * * You can also find the seasons of the series under the seasons property, * and the episodes of a season under the episodes property of the season object. * Via the streamingOptions property of seasons and episodes, * you can get the individual streaming options of them. * These streaming options include the same set of properties as the show streaming options, * so you can use them to get deep links to episodes and seasons, and to see available audios and subtitles. * * Note that seasons and episodes are not included in the search results * unless you set the series_granularity parameter to seasons or episodes. * For more info, check out the series_granularity parameter of the search endpoints. * * There are multiple ways to retrieve shows. * You can retrieve a show by its IMDb or TMDB id via [/shows/{id}](#get-a-show) endpoint; * you can search shows by their title via [/shows/search/title](#search-shows-by-title) endpoint; * and you can search shows by filters such as genres, release year, rating etc. * via [/shows/search/filters](#search-shows-by-filters) endpoint. This endpoint also supports pagination * and offers advanced ordering options such as ordering by popularity, rating, release year etc. * * @export * @interface Show */ export interface Show { /** * Type of the item. Always show. * @type {string} * @memberof Show */ itemType: string; /** * Type of the show. Based on the type, some properties might be omitted. * @type {ShowType} * @memberof Show */ showType: ShowType; /** * Id of the show. * @type {string} * @memberof Show */ id: string; /** * [IMDb](https://www.imdb.com/) id of the show. * @type {string} * @memberof Show */ imdbId: string; /** * [TMDB](https://www.themoviedb.org/) id of the show. * @type {string} * @memberof Show */ tmdbId: string; /** * Title of the show. * @type {string} * @memberof Show */ title: string; /** * A brief overview of the overall plot of the show. * @type {string} * @memberof Show */ overview: string; /** * The year that the movie was released. * @type {number} * @memberof Show */ releaseYear?: number; /** * The first year that the series aired. * @type {number} * @memberof Show */ firstAirYear?: number; /** * The last year that the series aired. * @type {number} * @memberof Show */ lastAirYear?: number; /** * Original title of the show. * @type {string} * @memberof Show */ originalTitle: string; /** * Array of the genres of the show. * @type {Array<Genre>} * @memberof Show */ genres: Array<Genre>; /** * Array of the directors of the movie. * @type {Array<string>} * @memberof Show */ directors?: Array<string>; /** * Array of the creators of the series. * @type {Array<string>} * @memberof Show */ creators?: Array<string>; /** * Array of the cast of the show. * @type {Array<string>} * @memberof Show */ cast: Array<string>; /** * Rating of the show. This is calculated by taking the average of ratings found online from multiple sources. * @type {number} * @memberof Show */ rating: number; /** * Number of seasons that are either aired or announced for a series. * @type {number} * @memberof Show */ seasonCount?: number; /** * Number of episodes that are either aired or announced for a series. * @type {number} * @memberof Show */ episodeCount?: number; /** * Runtime of the movie in minutes. * @type {number} * @memberof Show */ runtime?: number; /** * Image set of the show. * @type {ShowImageSet} * @memberof Show */ imageSet: ShowImageSet; /** * Map of the streaming options by the country code. * @type {{ [key: string]: Array<StreamingOption>; }} * @memberof Show */ streamingOptions: { [key: string]: Array<StreamingOption>; }; /** * Array of the seasons belong to the series. * @type {Array<Season>} * @memberof Show */ seasons?: Array<Season>; } /** * Check if a given object implements the Show interface. */ export function instanceOfShow(value: object): boolean { if (!('itemType' in value)) return false; if (!('showType' in value)) return false; if (!('id' in value)) return false; if (!('imdbId' in value)) return false; if (!('tmdbId' in value)) return false; if (!('title' in value)) return false; if (!('overview' in value)) return false; if (!('originalTitle' in value)) return false; if (!('genres' in value)) return false; if (!('cast' in value)) return false; if (!('rating' in value)) return false; if (!('imageSet' in value)) return false; if (!('streamingOptions' in value)) return false; return true; } export function ShowFromJSON(json: any): Show { return ShowFromJSONTyped(json, false); } export function ShowFromJSONTyped(json: any, ignoreDiscriminator: boolean): Show { if (json == null) { return json; } return { 'itemType': json['itemType'], 'showType': ShowTypeFromJSON(json['showType']), 'id': json['id'], 'imdbId': json['imdbId'], 'tmdbId': json['tmdbId'], 'title': json['title'], 'overview': json['overview'], 'releaseYear': json['releaseYear'] == null ? undefined : json['releaseYear'], 'firstAirYear': json['firstAirYear'] == null ? undefined : json['firstAirYear'], 'lastAirYear': json['lastAirYear'] == null ? undefined : json['lastAirYear'], 'originalTitle': json['originalTitle'], 'genres': ((json['genres'] as Array<any>).map(GenreFromJSON)), 'directors': json['directors'] == null ? undefined : json['directors'], 'creators': json['creators'] == null ? undefined : json['creators'], 'cast': json['cast'], 'rating': json['rating'], 'seasonCount': json['seasonCount'] == null ? undefined : json['seasonCount'], 'episodeCount': json['episodeCount'] == null ? undefined : json['episodeCount'], 'runtime': json['runtime'] == null ? undefined : json['runtime'], 'imageSet': ShowImageSetFromJSON(json['imageSet']), 'streamingOptions': json['streamingOptions'], 'seasons': json['seasons'] == null ? undefined : ((json['seasons'] as Array<any>).map(SeasonFromJSON)), }; } export function ShowToJSON(value?: Show | null): any { if (value == null) { return value; } return { 'itemType': value['itemType'], 'showType': ShowTypeToJSON(value['showType']), 'id': value['id'], 'imdbId': value['imdbId'], 'tmdbId': value['tmdbId'], 'title': value['title'], 'overview': value['overview'], 'releaseYear': value['releaseYear'], 'firstAirYear': value['firstAirYear'], 'lastAirYear': value['lastAirYear'], 'originalTitle': value['originalTitle'], 'genres': ((value['genres'] as Array<any>).map(GenreToJSON)), 'directors': value['directors'], 'creators': value['creators'], 'cast': value['cast'], 'rating': value['rating'], 'seasonCount': value['seasonCount'], 'episodeCount': value['episodeCount'], 'runtime': value['runtime'], 'imageSet': ShowImageSetToJSON(value['imageSet']), 'streamingOptions': value['streamingOptions'], 'seasons': value['seasons'] == null ? undefined : ((value['seasons'] as Array<any>).map(SeasonToJSON)), }; }