Roku · Schema

Search Feed

StreamingTelevisionMediaEntertainmentConnected TVConsumer Electronics

Properties

Name Type Description
version string
defaultLanguage object
defaultAvailabilityCountries array
nextPageUrl string
assets array
View JSON Schema on GitHub

JSON Schema

search-feed-schema.json Raw ↑
{
	"$schema": "http://json-schema.org/draft-07/schema#",
	"type": "object",
	"properties": {
		"version": {
			"type": "string"
		},
		"defaultLanguage": {
			"$ref": "#/definitions/language_type"
		},
		"defaultAvailabilityCountries": {
			"type": "array",
			"items": [{
				"$ref": "#/definitions/country_type"
			}]
		},
		"nextPageUrl": {
			"type": "string",
			"pattern": "^http(s)?://.+$"
		},
		"assets": {
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"id": {
						"type": "string"
					},
					"type": {
						"$ref": "#/definitions/asset_type"
					},
					"titles": {
						"type": "array",
						"items": {
							"$ref": "#/definitions/title"
						}
					},
					"shortDescriptions": {
						"type": "array",
						"items": {
							"$ref": "#/definitions/short_description"
						}
					},
					"longDescriptions": {
						"type": "array",
						"items": {
							"$ref": "#/definitions/long_description"
						}
					},
					"externalIdSource": {
						"$ref": "#/definitions/external_id_source_type"
					},
					"externalIds": {
						"type": "array",
						"items": {
							"$ref": "#/definitions/external_id"
						}
					},
					"releaseDate": {
						"description": "ISO-8601",
						"type": "string",
						"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
					},
					"releaseYear": {
						"type": "integer"
					},
					"genres": {
						"type": "array",
						"items": {
							"$ref": "#/definitions/genre_type"
						}
					},
					"tags": {
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"credits": {
						"type": "array",
						"items": {
							"type": "object",
							"properties": {
								"name": {
									"type": "string"
								},
								"role": {
									"type": "string"
								},
								"birthDate": {
									"type": "string"
								},
								"deathDate": {
									"type": "string"
								},
								"imageUrl": {
									"type": "string"
								}
							}
						}
					},
					"advisoryRatings": {
						"type": "array",
						"items": {
							"$ref": "#/definitions/advisory_rating"
						}
					},
					"images": {
						"type": "array",
						"items": {
							"$ref": "#/definitions/image"
						}
					},
					"durationInMilliseconds": {
						"type": "number"
					},
					"durationInSeconds": {
						"type": "integer"
					},
					"episodeInfo": {
						"type": "object",
						"properties": {
							"seriesId": {
								"type": "string"
							},
							"seasonNumber": {
								"type": "integer"
							},
							"episodeNumber": {
								"type": "integer"
							}
						},
						"required": [
							"seriesId",
							"episodeNumber"
						]
					},
					"seasonInfo": {
						"type": "object",
						"properties": {
							"seasonNumber": {
								"type": "integer"
							},
							"seriesId": {
								"type": "string"
							}
						},
						"required": [
							"seasonNumber",
							"seriesId"
						]
					},
					"content": {
						"type": "object",
						"properties": {
							"media": {
								"$ref": "#/definitions/media"
							},
							"linearEvents": {
								"type": "array",
								"items": {
									"$ref": "#/definitions/linear_event"
								}
							},
							"playOptions": {
								"type": "array",
								"items": {
									"$ref": "#/definitions/play_option"
								}
							}
						},
						"oneOf": [{
								"required": [
									"media"
								]
							},
							{
								"required": [
									"playOptions"
								]
							}
						]
					},
					"isOriginal": {
						"type": "boolean"
					}
				},
				"if": {
					"properties": {
						"type": {
							"const": "externalIdOnly"
						}
					},
					"required": [
						"type"
					]
				},
				"then": {
					"required": [
						"id",
						"type",
						"externalIdSource"
					]
				},
				"else": {
					"if": {
						"properties": {
							"type": {
								"const": "season"
							}
						},
						"required": [
							"type"
						]
					},
					"then": {
						"required": [
							"type",
							"seasonInfo"
						]
					},
					"else": {
						"required": [
							"id",
							"titles",
							"type"
						]
					}
				}
			}
		}
	},
	"required": [
		"version",
		"assets"
	],
	"definitions": {
		"image": {
			"type": "object",
			"properties": {
				"type": {
					"$ref": "#/definitions/image_type"
				},
				"url": {
					"type": "string",
					"pattern": "^http(s)?://.+$"
				},
				"languages": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/language_type"
					}
				}
			},
			"required": [
				"type",
				"url"
			]
		},
		"short_description": {
			"type": "object",
			"properties": {
				"value": {
					"type": "string",
					"maxLength": 200
				},
				"languages": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/language_type"
					}
				}
			},
			"required": [
				"value"
			]
		},
		"long_description": {
			"type": "object",
			"properties": {
				"value": {
					"type": "string",
					"maxLength": 500
				},
				"languages": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/language_type"
					}
				}
			},
			"required": [
				"value"
			]
		},
		"title": {
			"type": "object",
			"properties": {
				"value": {
					"type": "string",
					"maxLength": 200
				},
				"languages": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/language_type"
					}
				}
			},
			"required": [
				"value"
			]
		},
		"advisory_rating": {
			"type": "object",
			"properties": {
				"source": {
					"$ref": "#/definitions/advisory_ratings_source_type"
				},
				"value": {
					"type": "string"
				},
				"descriptors": {
					"type": "array"
				}
			},
			"allOf": [{
					"if": {
						"properties": {
							"source": {
								"const": "ACB"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/ACB_values"
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "BBFC"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/BBFC_values"
							},
							"descriptors": {
								"items": {
									"$ref": "#/definitions/BBFC_descriptors"
								}
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "CLASSIND"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/CLASSIND_values"
							},
							"descriptors": {
								"items": {
									"$ref": "#/definitions/CLASSIND_descriptors"
								}
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "CHVRS"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/CHVRS_values"
							},
							"descriptors": {
								"items": {
									"$ref": "#/definitions/CHVRS_descriptors"
								}
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "CPR"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/CPR_values"
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "FSF"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/FSF_values"
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "FSK"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/FSK_values"
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "MPAA"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/MPAA_values"
							},
							"descriptors": {
								"items": {
									"$ref": "#/definitions/MPAA_descriptors"
								}
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "RTC"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/RTC_values"
							},
							"descriptors": {
								"items": {
									"$ref": "#/definitions/RTC_descriptors"
								}
							}
						}
					}
				},
				{
					"if": {
						"properties": {
							"source": {
								"const": "USA_PR"
							}
						}
					},
					"then": {
						"properties": {
							"value": {
								"$ref": "#/definitions/USA_PR_values"
							},
							"descriptors": {
								"items": {
									"$ref": "#/definitions/USA_PR_descriptors"
								}
							}
						}
					}
				}
			],
			"required": [
				"source",
				"value"
			]
		},
		"asset_type": {
			"type": "string",
			"enum": [
				"movie",
				"tvSpecial",
				"series",
				"season",
				"episode",
				"shortForm",
				"externalIdOnly"
			]
		},
		"external_id_source_type": {
			"type": "string",
			"enum": [
				"tms",
				"ref",
				"gsd",
				"partner_title_id",
				"partner_asset_id",
				"gracenote_station_id"
			]
		},
		"externalIdRelationTypes": {
			"type": "string",
			"enum": [
				"parent",
				"child",
				"sibling"
			]
		},
		"image_type": {
			"type": "string",
			"enum": [
				"main",
				"background",
				"keyart",
				"logo",
				"dark_logo",
				"hud_logo"
			]
		},
		"genre_type": {
			"type": "string",
			"enum": [
				"action",
				"action sports",
				"adventure",
				"aerobics",
				"agriculture",
				"animals",
				"animated",
				"anime",
				"anthology",
				"archery",
				"arm wrestling",
				"art",
				"arts/crafts",
				"artistic gymnastics",
				"artistic swimming",
				"athletics",
				"auction",
				"auto",
				"auto racing",
				"aviation",
				"awards",
				"badminton",
				"ballet",
				"baseball",
				"basketball",
				"3x3 basketball",
				"beach soccer",
				"beach volleyball",
				"biathlon",
				"bicycle",
				"bicycle racing",
				"billiards",
				"biography",
				"blackjack",
				"bmx racing",
				"boat",
				"boat racing",
				"bobsled",
				"bodybuilding",
				"bowling",
				"boxing",
				"bullfighting",
				"bus./financial",
				"canoe",
				"card games",
				"ceremony",
				"cheerleading",
				"children",
				"children-music",
				"children-special",
				"children-talk",
				"collectibles",
				"comedy",
				"comedy drama",
				"community",
				"computers",
				"canoe/kayak",
				"consumer",
				"cooking",
				"cricket",
				"crime",
				"crime drama",
				"curling",
				"cycling",
				"dance",
				"dark comedy",
				"darts",
				"debate",
				"diving",
				"docudrama",
				"documentary",
				"dog racing",
				"dog show",
				"dog sled",
				"drag racing",
				"drama",
				"educational",
				"entertainment",
				"environment",
				"equestrian",
				"erotic",
				"event",
				"exercise",
				"fantasy",
				"faith",
				"fashion",
				"fencing",
				"field hockey",
				"figure skating",
				"fishing",
				"football",
				"food",
				"fundraiser",
				"gaelic football",
				"game show",
				"gaming",
				"gay/lesbian",
				"golf",
				"gymnastics",
				"handball",
				"health",
				"historical drama",
				"history",
				"hockey",
				"holiday",
				"holiday music",
				"holiday music special",
				"holiday special",
				"holiday-children",
				"holiday-children special",
				"home improvement",
				"horror",
				"horse",
				"house/garden",
				"how-to",
				"hunting",
				"hurling",
				"hydroplane racing",
				"indoor soccer",
				"interview",
				"intl soccer",
				"judo",
				"karate",
				"kayaking",
				"lacrosse",
				"law",
				"live",
				"luge",
				"martial arts",
				"medical",
				"military",
				"miniseries",
				"mixed martial arts",
				"modern pentathlon",
				"motorcycle",
				"motorcycle racing",
				"motorsports",
				"mountain biking",
				"music",
				"music special",
				"music talk",
				"musical",
				"musical comedy",
				"mystery",
				"nature",
				"news",
				"newsmagazine",
				"olympics",
				"opera",
				"outdoors",
				"parade",
				"paranormal",
				"parenting",
				"performing arts",
				"playoff sports",
				"poker",
				"politics",
				"polo",
				"pool",
				"pro wrestling",
				"public affairs",
				"racquet",
				"reality",
				"religious",
				"ringuette",
				"road cycling",
				"rodeo",
				"roller derby",
				"romance",
				"romantic comedy",
				"rowing",
				"rugby",
				"running",
				"rhythmic gymnastics",
				"sailing",
				"science",
				"science fiction",
				"self improvement",
				"shooting",
				"shopping",
				"sitcom",
				"skateboarding",
				"skating",
				"skeleton",
				"skiing",
				"snooker",
				"snowboarding",
				"snowmobile",
				"soap",
				"soap special",
				"soap talk",
				"soccer",
				"softball",
				"special",
				"speed skating",
				"sport climbing",
				"sports",
				"sports talk",
				"squash",
				"standup",
				"sumo wrestling",
				"surfing",
				"suspense",
				"swimming",
				"table tennis",
				"taekwondo",
				"talk",
				"technology",
				"tennis",
				"theater",
				"thriller",
				"track/field",
				"track cycling",
				"travel",
				"trampoline",
				"triathlon",
				"variety",
				"volleyball",
				"war",
				"water polo",
				"water skiing",
				"watersports",
				"weather",
				"weightlifting",
				"western",
				"wrestling",
				"yacht racing"
			]
		},
		"advisory_ratings_source_type": {
			"type": "string",
			"enum": [
				"ACB",
				"BBFC",
				"CLASSIND",
				"CHVRS",
				"CPR",
				"FSF",
				"FSK",
				"MPAA",
				"RTC",
				"USA_PR"
			]
		},
		"language_type": {
			"type": "string",
			"enum": [
				"af",
				"am",
				"ar",
				"ar-dz",
				"ar-bh",
				"ar-eg",
				"ar-iq",
				"ar-jo",
				"ar-kw",
				"ar-lb",
				"ar-ly",
				"ar-ma",
				"ar-om",
				"ar-qa",
				"ar-sa",
				"ar-sy",
				"ar-tn",
				"ar-ae",
				"ar-ye",
				"as",
				"az",
				"be",
				"bg",
				"bh",
				"bn",
				"bo",
				"bs",
				"ca",
				"cs",
				"cy",
				"da",
				"de",
				"de-at",
				"de-de",
				"de-li",
				"de-lu",
				"de-ch",
				"dv",
				"dz",
				"el",
				"en",
				"en-at",
				"en-au",
				"en-bz",
				"en-ca",
				"en-ie",
				"en-jm",
				"en-nz",
				"en-za",
				"en-tt",
				"en-gb",
				"en-us",
				"es",
				"es-ar",
				"es-bo",
				"es-cl",
				"es-co",
				"es-cr",
				"es-do",
				"es-ec",
				"es-es",
				"es-sv",
				"es-gt",
				"es-hn",
				"es-mx",
				"es-ni",
				"es-pa",
				"es-py",
				"es-pe",
				"es-pr",
				"es-us",
				"es-uy",
				"es-ve",
				"eu",
				"et",
				"fa",
				"ff",
				"fi",
				"fo",
				"fr",
				"fr-be",
				"fr-ca",
				"fr-lu",
				"fr-ch",
				"fy",
				"ga",
				"gd",
				"gl",
				"gn",
				"gu",
				"ha",
				"he",
				"hi",
				"hr",
				"ht",
				"hu",
				"hy",
				"id",
				"ig",
				"ii",
				"ik",
				"is",
				"it",
				"it-ch",
				"iu",
				"ja",
				"ka",
				"kk",
				"km",
				"kn",
				"ko",
				"kr",
				"ks",
				"ku",
				"ky",
				"la",
				"lo",
				"lt",
				"lv",
				"mg",
				"mk",
				"ml",
				"mn",
				"mr",
				"ms",
				"mt",
				"my",
				"nd",
				"ne",
				"nl",
				"nl-be",
				"no",
				"om",
				"or",
				"pa",
				"pl",
				"ps",
				"pt",
				"pt-br",
				"qu",
				"ro",
				"ro-md",
				"rm",
				"rn",
				"ru",
				"ru-md",
				"rw",
				"sa",
				"sd",
				"se",
				"si",
				"sk",
				"sl",
				"sn",
				"so",
				"sq",
				"sr",
				"st",
				"sv",
				"sv-fi",
				"sw",
				"ta",
				"te",
				"tg",
				"th",
				"ti",
				"tk",
				"tn",
				"tr",
				"ts",
				"tt",
				"ty",
				"uk",
				"ur",
				"uz",
				"ve",
				"vi",
				"xh",
				"yi",
				"yo",
				"zh",
				"zh-hk",
				"zh-cn",
				"zh-sg",
				"zh-tw",
				"zu"
			]
		},
		"country_type": {
			"type": "string",
			"enum": [
				"ar",
				"at",
				"au",
				"bo",
				"br",
				"ca",
				"cl",
				"co",
				"cr",
				"de",
				"ec",
				"es",
				"fr",
				"gb",
				"gt",
				"hn",
				"ie",
				"mx",
				"ni",
				"pa",
				"pe",
				"sv",
				"us"
			]
		},
		"ACB_values": {
			"type": "string",
			"enum": [
				"NR",
				"E",
				"G",
				"PG",
				"M",
				"MA 15+",
				"R 18+",
				"X 18+",
				"AV 15+",
				"C",
				"NC",
				"RC",
				"P"
			]
		},
		"BBFC_descriptors": {
			"type": "string",
			"description": "Descriptors for BBFC ratings",
			"enum": [
				"theme",
				"behaviour",
				"horror",
				"nudity",
				"discrimination",
				"language",
				"violence",
				"drugs",
				"sex"
			]
		},
		"BBFC_values": {
			"type": "string",
			"enum": [
				"NR",
				"U",
				"PG",
				"12A",
				"12-A",
				"12",
				"15",
				"18",
				"R18",
				"R-18"
			]
		},
		"CHVRS_descriptors": {
			"type": "string",
			"description": "Descriptors for CHVRS ratings",
			"enum": [
				"not recommended for young children",
				"not recommended for children",
				"frightening scenes",
				"mature theme",
				"coarse language",
				"crude content",
				"nudity",
				"sexual content",
				"violence",
				"disturbing content",
				"substance abuse",
				"gory scenes",
				"explicit sexual content",
				"brutal violence",
				"sexual violence",
				"language may offend"
			]
		},
		"CHVRS_values": {
			"type": "string",
			"enum": [
				"NR",
				"G",
				"PG",
				"14A",
				"14-A",
				"18A",
				"18-A",
				"R",
				"E"
			]
		},
		"CLASSIND_descriptors": {
			"type": "string",
			"description": "Descriptors for CLASSIND ratings",
			"enum": [
				"violência",
				"violência extrema",
				"conteúdo sexual",
				"nudez",
				"sexo",
				"sexo explícito",
				"drogas",
				"drogas lícitas",
				"drogas ilícitas",
				"linguagem imprópria",
				"atos criminosos",
				"onteúdo impactante"
			]
		},
		"CLASSIND_values": {
			"type": "string",
			"enum": [
				"NR",
				"L",
				"10",
				"12",
				"14",
				"16",
				"18"
			]
		},
		"CPR_values": {
			"type": "string",
			"enum": [
				"NR",
				"14+",
				"18+",
				"C",
				"C8",
				"C-8",
				"G",
				"PG",
				"E"
			]
		},
		"FSF_values": {
			"type": "string",
			"enum": [
				"NR",
				"0",
				"6",
				"12",
				"16",
				"18"
			]
		},
		"FSK_values": {
			"type": "string",
			"enum": [
				"NR",
				"0",
				"6",
				"12",
				"16",
				"18"
			]
		},
		"MPAA_descriptors": {
			"type": "string",
			"description": "Descriptors for MPAA ratings",
			"enum": [
				"AC",
				"AL",
				"GL",
				"MV",
				"V",
				"GV",
				"BN",
				"N",
				"SSC",
				"RP"
			]
		},
		"MPAA_values": {
			"type": "string",
			"enum": [
				"NR",
				"G",
				"PG",
				"PG13",
				"PG-13",
				"R",
				"NC-17",
				"NC17",
				"UR"
			]
		},
		"RTC_descriptors": {
			"type": "string",
			"description": "Descriptors for RTC ratings",
			"enum": [
				"violence",
				"sex",
				"language",
				"drugs"
			]
		},
		"RTC_values": {
			"type": "string",
			"enum": [
				"NR",
				"AA",
				"A",
				"B",
				"B-15",
				"B15",
				"C",
				"D"
			]
		},
		"USA_PR_descriptors": {
			"type": "string",
			"description": "Descriptors used for USA_PR ratings",
			"enum": [
				"D",
				"L",
				"S",
				"V",
				"FV"
			]
		},
		"USA_PR_values": {
			"type": "string",
			"enum": [
				"NR",
				"TV-Y",
				"TVY",
				"TV-Y7",
				"TVY7",
				"TV-G",
				"TVG",
				"TV-PG",
				"TVPG",
				"TV-14",
				"TV14",
				"TV-MA",
				"TVMA"
			]
		},
		"media": {
			"type": "object",
			"properties": {
				"originalProductionLanguage": {
					"$ref": "#/definitions/language_type"
				},
				"secondaryAudioLanguages": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/language_type"
					}
				},
				"audioTracks": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"label": {
								"type": "string"
							},
							"type": {
								"enum": [
									"original",
									"audio description",
									"other"
								]
							},
							"language": {
								"$ref": "#/definitions/language_type"
							}
						},
						"required": [
							"language"
						]
					}
				},
				"audioFormats": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/audio_format_type"
					}
				},
				"videos": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"url": {
								"type": "string"
							},
							"quality": {
								"$ref": "#/definitions/video_type"
							},
							"videoType": {
								"$ref": "#/definitions/video_quality_type"
							},
							"bitRate": {
								"description": "must be greater than or equal to 0",
								"type": "integer"
							},
							"drmAuthentication": {
								"type": "object",
								"properties": {
									"drmContentProvider": {
										"type": "string"
									}
								}
							}
						},
						"required": [
							"url",
							"quality",
							"videoType"
						]
					}
				},
				"captions": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"url": {
								"type": "string"
							},
							"captionType": {
								"enum": [
									"closed_caption",
									"subtitle"
								]
							},
							"language": {
								"$ref": "#/definitions/language_type"
							}
						},
						"required": [
							"url",
							"captionType",
							"language"
						]
					}
				},
				"trickPlayFiles": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"url": {
								"type": "string"
							},
							"quality": {
								"$ref": "#/definitions/video_quality_type"
							}
						},
						"required": [
							"url",
							"quality"
						]
					}
				},
				"creditCuePoints": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"url": {
								"type": "string"
							},
							"creditType": {
								"enum": [
									"intro",
									"end",
									"recap",
									"behindthescenes"
								]
							},
							"start": {
								"type": "number"
							},
							"end": {
								"type": "number"
							}
						},
						"required": [
							"creditType"
						]
					}
				},
				"dateAddedTimeStamp": {
					"duration": "must be before now",
					"type": "number"
				},
				"adBreaks": {
					"type": "array",
					"items": {
						"description": "offset from start, must be less than program duration",
						"type": "number"
					}
				}
			},
			"required": [
				"videos"
			]
		},
		"play_option": {
			"type": "object",
			"properties": {
				"license": {
					"$ref": "#/definitions/license_type"
				},
				"price": {
					"type": "number"
				},
				"quality": {
					"$ref": "#/definitions/video_quality_type"
				},
				"audioFormats": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/audio_format_type"
					}
				},
				"currency": {
					"type": "string"
				},
				"playId": {
					"type": "string"
				},
				"availabilityStartTimeStamp": {
					"description": "millis since epoch",
					"type": "number"
				},
				"availabilityEndTimeStamp": {
					"description": "millis since epoch",
					"type": "number"
				},
				"availabilityStartTime": {
					"description": "ISO-8601",
					"type": "string"
				},
				"availabilityEndTime": {
					"description": "ISO-8601",
					"type": "string"
				},
				"discreteLiveEvent": {
					"$ref": "#/definitions/live_event"
				},
				"availabilityInfo": {
					"$ref": "#/definitions/availability_info"
				}
			},
			"allOf": [{
					"if": {
						"properties": {
							"license": {
								"enum": [
									"rental",
									"purchase"
								]
							}
						}
					},
					"then": {
						"required": [
							"price"
						]
					}
				},
				{
					"if": {
						"properties": {
							"license": {
								"enum": [
									"free",
									"subscription"
								]
							}
						}
					},
					"then": {
						"not": {
							"required": [
								"price"
							]
						}
					}
				}
			],
			"required": [
				"license",
				"quality",
				"playId"
			]
		},
		"license_type": {
			"type": "string",
			"enum": [
				"free",
				"subscription",
				"rental",
				"purchase"
			]
		},
		"video_type": {
			"type": "string",
			"enum": [
				"hls",
				"smooth",
				"dash",
				"mp4",
				"mov",
				"m4v"
			]
		},
		"video_quality_type": {
			"type": "string",
			"enum": [
				"sd",
				"hd",
				"hd+",
				"uhd",
				"fhd"
			]
		},
		"audio_format_type": {
			"type": "string",
			"enum": [
				"mono",
				"stereo",
				"dolby digital",
				"dolby atmos",
				"dolby digital plus"
			]
		},
		"linear_event": {
			"type": "object",
			"properties": {
				"stationId": {
					"type": "string"
				},
				"referenceId": {
					"type": "string"
				},
				"durationInSeconds": {
					"type": "integer"
				},
				"isLive": {
					"type": "boolean"
				},
				"date": {
					"type": "string"
				},
				"times": {
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"attributes": {
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"title": {
					"type": "string"
				},
				"externalId": {
					"$ref": "#/definitions/external_id"
				},
				"startTime": {
					"type": "integer"
				},
				"endTime": {
					"type": "integer"
				}
			}
		},
		"external_id": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"source": {
					"$ref": "#/definitions/external_id_source_type"
				}
			},
			"required": [
				"id",
				"source"
			]
		},
		"live_event": {
			"type": "object",
			"properties": {
				"streamStart": {
					"type": "integer"
				},
				"streamEnd": {
					"type": "integer"
				},
				"streamViewable": {
					"type": "integer"
				},
				"streamUnviewable": {
					"type": "integer"
				},
				"eventStart": {
					"type": "integer"
				},
				"eventEnd": {
					"type": "integer"
				},
				"timeChangeReason": {
					"type": "string"
				}
			}
		},
		"availability_info": {
			"type": "object",
			"properties": {
				"country": {
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"license": {
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"platform": {
					"type": "array",
					"items": {
						"type": "string"
					}
				}
			}
		}
	}
}