{"openapi":"3.0.0","servers":[{"url":"/api"}],"info":{"description":"An Orchestration Layer that takes ISL services and packages them in a more targeted way for front-end applications.\nThis in turn makes client integration easier and reduces the complexity and size of front-end applications.\n\nRocket is also customisable - allowing UI engineers to ‘remix’ the existing back-end services into something that\nbest suits the application they are developing.\n","title":"Rocket Services","version":"3.730.300-ref-1-39-0","x-apisguru-categories":["entertainment"],"x-origin":[{"format":"openapi","url":"https://isl.britbox.co.uk/api/spec","version":"3.0"}],"x-providerName":"britbox.co.uk"},"paths":{"/account":{"get":{"description":"Get the details of an account along with the profiles and entitlements under it.","operationId":"getAccount","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"patch":{"description":"Update the details of an account.\n\nWith the exception of the address, this supports partial updates, so you can send just the\nproperties you wish to update.\n\nWhen the address is provided any properties which are omitted from the address will be cleared.\n","operationId":"updateAccount","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountUpdateRequest"}}},"description":"Updated account details.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Settings"]}],"tags":["account"]},"x-serviceId":"account"},"/account/billing/methods":{"get":{"description":"Get the available payment methods under an account.","operationId":"getPaymentMethods","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PaymentMethod"},"type":"array"}}},"description":"The list of available payment methods."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"post":{"description":"Add a new payment method to an account.","operationId":"addPaymentMethod","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPaymentMethodRequest"}}},"description":"Registration details for a new payment method.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentMethod"}}},"description":"The created payment method."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Commerce"]}],"tags":["account"]},"x-serviceId":"billing"},"/account/billing/methods/{id}":{"delete":{"description":"Remove a payment method from an account.","operationId":"removePaymentMethod","parameters":[{"description":"The id of the payment method to remove.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"Payment method removed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Commerce"]}],"tags":["account"]},"get":{"description":"Get a payment method under an account.","operationId":"getPaymentMethod","parameters":[{"description":"The id of the payment method to get.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentMethod"}}},"description":"The payment method requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"billing"},"/account/billing/purchases":{"get":{"description":"Get a list of all purchases made under an account.","operationId":"getPurchases","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Purchase"},"type":"array"}}},"description":"A list of all purchases made under the account."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Commerce"]}],"tags":["account"]},"post":{"description":"Purchase a plan or item offer.\nThe result of a successful transaction is a new entitlement.\n","operationId":"makePurchase","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseRequest"}}},"description":"Details of a plan or item purchase.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entitlement"}}},"description":"The entitlement for the purchased plan or item."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Commerce"]}],"tags":["account"]},"x-serviceId":"billing"},"/account/billing/subscriptions/{id}":{"delete":{"description":"Cancel a plan subscription.\n\nA cancelled subscription will continue to be valid until the subscription\nexpiry date or next renewal date.\n","operationId":"cancelSubscription","parameters":[{"description":"The identifier of the current active subscription membership of the account.\n","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Commerce"]}],"tags":["account"]},"put":{"description":"Renew a cancelled subscription or switch subscription to a different plan.\n\nWhen renewing a cancelled subscription membership, hit this endpoint with\nthe id of subscription to renew.\n\nTo switch plans provide the id of the current active subscription membership\nof the account, and in the query specify the id of the plan to switch to.\n","operationId":"updateSubscription","parameters":[{"description":"The identifier of the current subscription membership\nassociated with the account.\n","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The id of the plan to switch to if switching plans.","in":"query","name":"planId","schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Commerce"]}],"tags":["account"]},"x-serviceId":"billing"},"/account/devices":{"get":{"description":"Get all devices registered under this account.\n\nAlso includes information around device registration and deregistration limits.\n","operationId":"getDevices","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountDevices"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"post":{"description":"Register a playback device under an account.\n\nIf a device with the same id already exists a `409` conflict will be returned.\n","operationId":"registerDevice","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRegistrationRequest"}}},"description":"Registration details for a new playback device.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"A device with the provided id already exists."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"device"},"/account/devices/authorization":{"post":{"description":"Authorize a device from a generated device authorization code.\n\nThis is the second step in the process of authorizing a device by pin code.\n\nFirstly the device must request a generated authorization code via the\n`/authorization/device/code` endpoint.\n\nThis endpoint then authorizes the device associated with the code to sign in\nto a user account. Typically this endpoint will be called from a page\npresented in the web app under the account section.\n\nOnce authorized, the device will then be able to sign in to that account\nvia the `/authorization/device` endpoint, without needing to provide the \ncredentials of the user.\n","operationId":"authorizeDevice","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAuthorizationCode"}}},"description":"The generated device authorization code.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"itvAuth"},"/account/devices/{id}":{"delete":{"description":"Deregister a playback device from an account.","operationId":"deregisterDevice","parameters":[{"description":"The unique identifier for the registered device e.g. serial number.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"Device deregistered."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"get":{"description":"Get a registered device.","operationId":"getDevice","parameters":[{"description":"The unique identifier for the registered device e.g. serial number.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"device"},"/account/devices/{id}/name":{"put":{"description":"Rename a device","operationId":"renameDevice","parameters":[{"description":"The unique identifier for this registered device e.g. serial number.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The new name for the device.","in":"query","name":"name","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"Device renamed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"device"},"/account/entitlements":{"get":{"description":"Get all entitlements under the account.\n\nThis list is returned under the call to get account information so a call here is\nonly required when wishing to refresh a local copy of entitlements.\n","operationId":"getEntitlements","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Entitlement"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"entitlement"},"/account/items/{id}/videos":{"get":{"description":"Get the video files associated with an item given maximum resolution, device type\nand one or more delivery types.\n\nThis endpoint accepts an Account Catalog token, however if when requesting\nplayback files you receive an *403 status code with error code 1* then the file\nyou're requesting is classification restricted. This means you should switch\nto target the `/account/items/{id}/videos-guarded` endpoint, passing it an Account\nPlayback token. If not already obtained, this token can be requested via the\n`/itv/pinauthorization` endpoint with an account level pin.\n\nFor convenience you may also access free / public files through this endpoint\ninstead of the /items/{id}/videos endpoint, when authenticated.\n\nReturns an array of video file objects which each include a url to a video.\n\nThe first entry in the array contains what is predicted to be the best match.\nThe remainder of the entries, if any, may contain resolutions below what was\nrequests. For example if you request HD-720 the response may also contain\nSD entries.\n\nIf you specify multiple delivery types, then the response array will insert\ntypes in the order you specify them in the query. For example `stream,progressive`\nwould return an array with 0 or more stream files followed by 0 or more progressive files.\n\nIf no files are found a 404 is returned.\n","operationId":"getItemMediaFiles","parameters":[{"description":"The identifier of the item whose video files to load.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/MediaFileDelivery"},{"$ref":"#/components/parameters/MediaFileResolution"},{"$ref":"#/components/parameters/MediaFileFormats"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MediaFile"},"type":"array"}}},"description":"The list of video files available.\nThe first entry containing what is predicted to be the best match.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"media"},"/account/items/{id}/videos-guarded":{"get":{"description":"Get the video files associated with an item given maximum resolution, device type\nand one or more delivery types.\n\nThis endpoint is identical to the `/account/items/{id}/videos` however it expects\nan Account Playback token. This token, and in association this endpoint, is specifically\nfor use when playback files are classification restricted and require an account\nlevel pin to access them.\n\nReturns an array of video file objects which each include a url to a video.\n\nThe first entry in the array contains what is predicted to be the best match.\nThe remainder of the entries, if any, may contain resolutions below what was\nrequests. For example if you request HD-720 the response may also contain\nSD entries.\n\nIf you specify multiple delivery types, then the response array will insert\ntypes in the order you specify them in the query. For example `stream,progressive`\nwould return an array with 0 or more stream files followed by 0 or more progressive files.\n\nIf no files are found a 404 is returned.\n","operationId":"getItemMediaFilesGuarded","parameters":[{"description":"The identifier of the item whose video files to load.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/MediaFileDelivery"},{"$ref":"#/components/parameters/MediaFileResolution"},{"$ref":"#/components/parameters/MediaFileFormats"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MediaFile"},"type":"array"}}},"description":"The list of video files available.\nThe first entry containing what is predicted to be the best match.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Playback"]}],"tags":["account"]},"x-serviceId":"media"},"/account/nonce":{"get":{"description":"Generate a new account nonce.\n\nA nonce may be required to help sign a response from a third party\nservice which will be passed back to these services.\n\nFor example a Facebook single-sign-on request initiated by a client\napplication may first get a nonce from here to include in the request.\nFacebook will then include the nonce in the auth token it issues. This\ntoken can be passed back to our services and the nonce checked for validity.\n","operationId":"generateNonce","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountNonce"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"account"},"/account/password":{"put":{"description":"Change the password of an account.\n\nThe expected token scope is Settings.\n","operationId":"changePassword","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}},"description":"The new account password & ITV profile token.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Settings"]}],"tags":["account"]},"x-serviceId":"itvPassword"},"/account/pin":{"put":{"description":"Change the pin of an account.","operationId":"changePin","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePinRequest"}}},"description":"The new account pin.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Settings"]}],"tags":["account"]},"x-serviceId":"itvAccount"},"/account/profile":{"get":{"description":"Get the details of the active profile, including watched, bookmarked and rated items.","operationId":"getProfile","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileDetail"}}},"description":"Details of the active profile."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"profile"},"/account/profile/bookmarks":{"get":{"description":"Get the map of bookmarked item ids (itemId => creationDate) under the active profile.","operationId":"getBookmarks","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"format":"date-time","type":"string"},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profile/bookmarks/list":{"get":{"description":"Returns the list of bookmarked items under the active profile.","operationId":"getBookmarkList","parameters":[{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"format":"int32","maximum":50,"minimum":1,"type":"integer"}},{"$ref":"#/components/parameters/ListOrder"},{"$ref":"#/components/parameters/ItemType"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profile/bookmarks/{itemId}":{"delete":{"description":"Unbookmark an item under the active profile.","operationId":"deleteItemBookmark","parameters":[{"description":"The identifier of the bookmark to delete.","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"Bookmark deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"get":{"description":"Get the bookmark for an item under the active profile.","operationId":"getItemBookmark","parameters":[{"description":"The id of the item to get the bookmark for.","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Bookmark"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"put":{"description":"Bookmark an item under the active profile.\n\nCreates one if it doesn't exist, overwrites one if it does.\n","operationId":"bookmarkItem","parameters":[{"description":"The id of the item to bookmark.","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Bookmark"}}},"description":"Bookmark created."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profile/continue-watching/list":{"get":{"description":"Returns a list of items which have been watched but not completed under the active\nprofile.\n\nMultiple episodes under the same show may be watched or in progress, however only a\nsingle item belonging to a particular show will be included in the returned list.\n\nThe next episode to continue watching for a particular show will be the most recent\nincompletely watched episode, or the next episode following the most recently\ncompletely watched episode. Based on the specified `show_item_type` type, either the next\nepisode, the season of the next episode, or the show will be included in the list.\n","operationId":"getContinueWatchingList","parameters":[{"description":"The item type to be returned for continue watching items belonging to a show.\n\nMultiple episodes under the same show may be watched or in progress, however only a\nsingle item belonging to a particular show will be included in the returned list.\n\nThe next episode to continue watching for a particular show will be the most recent\nincompletely watched episode, or the next episode following the most recently\ncompletely watched episode. Based on the specified `show_item_type` type, either the next\nepisode, the season of the next episode, or the show will be included in the list.\n\nIf `episode` is specified, then only the next episode to continue watching for a\nshow will be returned.\n\nIf `season` is specified, then only the season of the next episode will be returned.\n\nIf `show` is specified, then only the show of the next episode will be returned\n\nThe recommended value of this parameter should reflect the desitination the\nuser will be sent to when they select this item in the list. So if a user will\nbe sent to the show detail page then this should be `show` and you can use\nthe `include` parameter to get metadata about the episode or season if needed\n","in":"query","name":"show_item_type","schema":{"default":"episode","enum":["episode","season","show"],"type":"string"}},{"description":"Include one opr more ancestor/children for items belonging to a show. Extra items\nwill be populated in the `listData` property of the list\n\nIf no value is specified no dependencies are included.\n\nIf `episode` is specified, then the next episode will be added for season/show\nitems. Has no effect if `show_item_type` is set to `episode`.\n\nIf `season` is specified, then the season of the next episode will be added for\nepisode/show items. Has no effect if `show_item_type` is set to `season`.\n\nIf `show` is specified, then the show of the next episode will be added for\nepisode/season items. Has no effect if `show_item_type` is set to `show`.\n","explode":false,"in":"query","name":"include","schema":{"default":[],"items":{"enum":["episode","season","show"],"type":"string"},"type":"array"},"style":"form"},{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":50,"minimum":1,"type":"integer"}},{"description":"The maximum rating (inclusive) of an item returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profile/items/{itemId}/next":{"get":{"description":"Returns the next item to play given a source item id.\n\nFor an unwatched show it returns the first episode available to the account.\n\nFor a watched show it returns the last incompletely watched episode by the profile,\nor the episode that immediately follows the last completely watched episode \nor nothing.\n\nFor an episode it always returns the immediately following episode, if available to\nthe account, or nothing.\n\nIf the response does not contain a `next` property then no item was found.\n","operationId":"getNextPlaybackItem","parameters":[{"description":"The identifier of the source item to base the next to watch item off.\n","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The maximum rating (inclusive) of an item returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"description":"If no value is specified no dependencies are expanded.\n\nIf 'parent' is specified then only the direct parent will be expanded.\nFor example if an `Episode` then the `Season` would be included.\n\nIf 'ancestors' is specified then the full parent chain is expanded.\nFor example if an `Episode` then both the `Season` and `Show` would be included.\n","in":"query","name":"expand","schema":{"enum":["parent","ancestors"],"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NextPlaybackItem"}}},"description":"The detail of the next item to play."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profile/ratings":{"get":{"description":"Get the map of rated item ids (itemId => rating out of 10) under the active profile.","operationId":"getRatings","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"userRating"},"/account/profile/ratings/list":{"get":{"description":"Returns the list of rated items under the active profile.","operationId":"getRatingsList","parameters":[{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":50,"minimum":1,"type":"integer"}},{"$ref":"#/components/parameters/ListOrder"},{"description":"What to order by.\n\nOrdering by `date-modified` equates to ordering by the last rated date.\n","in":"query","name":"order_by","schema":{"default":"date-added","enum":["date-added","date-modified"],"type":"string"}},{"$ref":"#/components/parameters/ItemType"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"userRating"},"/account/profile/ratings/{itemId}":{"get":{"description":"Get the rating info for an item under the active profile.","operationId":"getItemRating","parameters":[{"description":"The id of the item to get the rating info for.","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRating"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"put":{"description":"Rate an item under the active profile.\n\nCreates one if it doesn't exist, overwrites one if it does.\n","operationId":"rateItem","parameters":[{"description":"The id of the item to rate.","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The item rating between 1 and 10 inclusive.","in":"query","name":"rating","required":true,"schema":{"format":"int32","maximum":10,"minimum":1,"type":"integer"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRating"}}},"description":"OK."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"userRating"},"/account/profile/watched":{"delete":{"description":"Remove the watched status of items under the active profile. Passing in\nspecific `itemId`s to the `item_ids` query parameter will cause only these\nitems to be removed. **If this list is missing all watched items will be\nremoved**\n","operationId":"deleteWatched","parameters":[{"description":"List of `itemId`s to delete. Omit this parameter to delete all items\n","explode":false,"in":"query","name":"item_ids","schema":{"items":{"description":"itemId to delete","minLength":1,"type":"string"},"minItems":1,"type":"array"},"style":"form"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"Watched statuses deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"get":{"description":"Get the map of watched item ids (itemId => last playhead position) under the active profile.","operationId":"getWatched","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/Watched"},"type":"object"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profile/watched/list":{"get":{"description":"Returns the list of watched items under the active profile.","operationId":"getWatchedList","parameters":[{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":50,"minimum":1,"type":"integer"}},{"description":"Filter by whether an item has been fully watched (completed) or not.\n\nIf `undefined` then both partially and fully watched items are returned.\n","in":"query","name":"completed","schema":{"type":"boolean"}},{"$ref":"#/components/parameters/ListOrder"},{"description":"What to order by.\n\nOrdering by `date-modified` equates to ordering by the last watched date.\n","in":"query","name":"order_by","schema":{"default":"date-added","enum":["date-added","date-modified"],"type":"string"}},{"$ref":"#/components/parameters/ItemType"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profile/watched/{itemId}":{"get":{"description":"Get the watched status info for an item under the active profile.","operationId":"getItemWatchedStatus","parameters":[{"description":"The id of the item to get the watched status for.","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Watched"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"put":{"description":"Record the watched playhead position of a video under the active profile.\n\nCan be used later to resume a video from where it was last watched.\n\nCreates one if it doesn't exist, overwrites one if it does.\n","operationId":"setItemWatchedStatus","parameters":[{"description":"The id of the item being watched.","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The playhead position to record.","in":"query","name":"position","required":true,"schema":{"format":"int32","minimum":0,"type":"integer"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Watched"}}},"description":"OK."},"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["profile"]},"x-serviceId":"itvNightwatch"},"/account/profiles":{"post":{"description":"Create a new profile under the active account.","operationId":"createProfile","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileCreationRequest"}}},"description":"Profile details.","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileDetail"}}},"description":"Details of the created profile."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"profile"},"/account/profiles/{id}":{"delete":{"description":"Delete a profile with a specific id under the active account.\n\nNote that you cannot delete the primary profile.\n","operationId":"deleteProfileWithId","parameters":[{"description":"The identifier of the profile to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"Profile deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"get":{"description":"Get the summary of a profile with a specific id under the active account.","operationId":"getProfileWithId","parameters":[{"description":"The identifier of the profile to return.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileSummary"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"patch":{"description":"Update the summary of a profile with a specific id under the active account.\n\nThis supports partial updates so you can send just the properties you wish to update.\n","operationId":"updateProfileWithId","parameters":[{"description":"The identifier of the profile to update.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileUpdateRequest"}}},"description":"Updated profile details.","required":true},"responses":{"204":{"description":"Profile updated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"profile"},"/account/request-email-verification":{"post":{"description":"Request that the email address tied to an account be verified.\n\nThis will send a verification email to the email address of the primary profile containing\na link which, once clicked, completes the verification process via the /verify-email endpoint.\n\nNote that when an account is created this email is sent automatically so there's no need\nto call this directly.\n\nIf the user doesn't click the link before it expires then this endpoint can be called\nto request a new verification email. In the future it may also be used if we add support\nfor changing an account email address.\n","operationId":"requestEmailVerification","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["account"]},"x-serviceId":"account"},"/authorization":{"delete":{"description":"When a user signs out of an application we need to clear some\nbasic cookies we assigned them during token authorization.\n","operationId":"signOut","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["authorization"]},"post":{"description":"Request one or more `Account` level authorization tokens each with a chosen scope.\n\nTokens are used to access restricted service endpoints. These restricted endpoints\nwill require a specific token type (e.g Account) with a specific scope (e.g. Catalog)\nbefore access is granted.\n\nFor convenience, where a Profile level token with the same scope exists it will also be returned.\n\nAuthorization with pin is not supported on this endpoint anymore. Use `/itv/pinauthorization`\nendpoint instead.\n","operationId":"getAccountToken","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountTokenRequest"}}},"description":"The account credentials with requested token scope.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"items":{"$ref":"#/components/schemas/AccessToken"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["authorization"]},"x-serviceId":"itvAuth"},"/authorization/device":{"post":{"description":"Get Catalog tokens for an account using a device authorization code.\nWhere a Profile level token of Catalog scope exists it will also be returned.\n\nThis is the final step in the process of authorizing a device by pin code.\n\nFirstly the device must request a generated authorization code via the\n`/authorization/device/code` endpoint.\n\nThe code is subsequently used to authorize the device to sign in to a given\naccount via the `/account/devices/authorization` endpoint. Typically this\nwill be from a page presented in the web app under the account section.\n\nOnce authorized, this endpoint will allow the device to sign in without\nneeding to provide the credentials of the user.\n","operationId":"getAccountTokenByCode","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountTokenByCodeRequest"}}},"description":"The device id e.g. serial number and authorization code.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"items":{"$ref":"#/components/schemas/AccessToken"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["authorization"]},"x-serviceId":"itvAuth"},"/authorization/device/code":{"post":{"description":"Get a generated device authorization code.\n\nThis is the first step in the process of authorizing a device by pin code.\nThe device will make a request to this endpoint providing a unique identifier\nfor the device such as a serial number. This endpoint will then return a\ngenerated code which is tied to the given device.\n\nThe code may subsequently be used to authorize the device to sign in to an\naccount via the `/account/devices/authorization` endpoint. Typically this\nwill be from a page presented in the web app under the account section.\n\nOnce authorized, the device will then be able to sign in to that account\nvia the `/authorization/device` endpoint, without needing to provide the \ncredentials of the user.\n","operationId":"generateDeviceAuthorizationCode","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRegistrationRequest"}}},"description":"Details of the device being authorized.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAuthorizationCode"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["authorization"]},"x-serviceId":"itvAuth"},"/authorization/profile":{"post":{"description":"Request one or more `Profile` level authorization tokens each with a chosen scope.\n\nTokens are used to access restricted service endpoints. These restriced endpoints\nwill require a specific token type (e.g Profile) with a specific scope (e.g. Catalog)\nbefore access is granted.\n","operationId":"getProfileToken","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileTokenRequest"}}},"description":"The profile id and optional pin with required token scope.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"items":{"$ref":"#/components/schemas/AccessToken"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["authorization"]},"x-serviceId":"itvAuth"},"/authorization/refresh":{"post":{"description":"Refresh an account or profile level authorization token which is marked as refreshable.","operationId":"refreshToken","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRefreshRequest"}}},"description":"The token to refresh.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessToken"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["authorization"]},"x-serviceId":"itvAuth"},"/authorization/sso":{"post":{"description":"Exchange a third party single-sign-on token for our own authorization tokens.","operationId":"singleSignOn","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleSignOnRequest"}}},"description":"A single-sign-on request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"items":{"$ref":"#/components/schemas/AccessToken"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unauthorized.\n\nError codes:\n  - 6000: Unknown or default error code.\n  - 6001: An account with the same email already exists but it's not linked to this social identity.\n  - 6002: The social provider token provided is invalid.\n  - 6003: The account is already linked to a different account with the same provider.\n  - 6004: The user data returned from the social provider is missing the email address.\n"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."}},"tags":["authorization"]},"x-serviceId":"auth"},"/bt/plan/{token}":{"get":{"description":"Returns all the plans available for BT flow including additional description data.","operationId":"getPlanByToken","parameters":[{"description":"The identifier of the user provided by BT in an initial URL.","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BtPlanListItem"}}},"description":"Available plan for current user."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["bt"]},"x-serviceId":"itvBt"},"/bt/plans":{"get":{"description":"Returns all the plans available for BT flow including additional description data.","operationId":"getPlans","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BtPlans"}}},"description":"List of available plans."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["bt"]},"x-serviceId":"itvBt"},"/bt/token/assign":{"post":{"description":"Assigns an UserToken to a profile on the ITV side. Currently throws an exception.","operationId":"assignToken","parameters":[{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvAssignBtTokenRequest"}}},"description":"Details of an assign request.","required":true},"responses":{"201":{"description":"OK"},"401":{"description":"User unknown"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Failure"}},"security":[{"accountAuth":["Catalog"]}],"tags":["bt"]},"x-serviceId":"itvBt"},"/bt/token/validate":{"get":{"description":"Checks a provided token for BT eligible user.\n","operationId":"checkUserToken","parameters":[{"description":"User token provided by BT.","in":"query","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"description":"The token is eligeble for BT."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["bt"]},"x-serviceId":"itvBt"},"/check-subscription/{id}":{"get":{"description":"Returns the details of subscription data for a user with specified id.","operationId":"getSubscriptionData","parameters":[{"description":"The identifier of the user to load.\n","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionDetails"}}},"description":"The data requested"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["support"]},"x-serviceId":"itvSubscription"},"/config":{"get":{"description":"Get the global configuration for an application. Should be called during app statup.\n\nThis includes things like device and playback rules, classifications,\nsitemap and subscriptions.\n\nYou have the option to select specific configuration objects using the 'include'\nparameter, or if unspecified, getting all configuration.\n","operationId":"getAppConfig","parameters":[{"description":"A comma delimited list of config objects to return.\nIf none specified then all configuration is returned.\n","explode":false,"in":"query","name":"include","schema":{"items":{"enum":["classification","playback","sitemap","navigation","subscription","general","display","i18n","linear"],"type":"string"},"type":"array"},"style":"form"},{"description":"Classification system to load in case include = classification.\n","in":"query","name":"system","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppConfig"}}},"description":"The list of available pages"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["app"]},"x-serviceId":"itvConfig"},"/ee-bt/eligibility":{"get":{"description":"Check whether or not a user is eligible for switching to Bt or EE offers.","operationId":"checkEeBtEligibility","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeBtEligibility"}}},"description":"Success, returns eligibility data."},"406":{"description":"Customer does not exist."}},"security":[{"accountAuth":["Catalog"]}],"tags":["ee","bt"]},"x-serviceId":"itvSubscription"},"/ee/msisdn":{"post":{"description":"Assigns a msisdn to a profile on ITV side.","operationId":"assignMsisdn","parameters":[{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvAssignMsisdnRequest"}}},"description":"Details of an assign request.","required":true},"responses":{"201":{"description":"OK"},"401":{"description":"User unknown"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Failure"}},"security":[{"accountAuth":["Catalog"]}],"tags":["ee"]},"x-serviceId":"itvEe"},"/ee/offers":{"post":{"description":"Returns eligible partner specific offers for the querying partner for an EE MSISDN.\nThis call is supposed to be called after we have MSISDN accired.\nThis call should be followed by POST /ee/msisdn.\n","operationId":"getEligibleOffers","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeOffersRequest"}}},"description":"Data for getting the eligible offers.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeOffersResponse"}}},"description":"The list of eligible offers value."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["ee"]},"x-serviceId":"eeOffers"},"/ee/pin":{"post":{"description":"Validate PIN request created by calling POST /ee/pin This call is to validate MSISDN entered by a user not comming through EE network. This call should be called after PUT /ee/pin. This call should be followed by POST /ee/offers.","operationId":"validatePinRequest","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeValidatePinRequest"}}},"description":"Data for validating PIN.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeValidatePinResponse"}}},"description":"The validation status - success."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["ee"]},"put":{"description":"Creates a PIN request that will send an SMS to the given msisdn.\nThis call is to validate MSISDN entered by a user not comming through EE network.\nThis call should be followed by POST ee/pin.\n","operationId":"createPinRequest","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeCreatePinRequest"}}},"description":"Data for creating the PIN request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeCreatePinResponse"}}},"description":"The PIN reference value."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["ee"]},"x-serviceId":"eeCredentials"},"/ee/plans":{"get":{"description":"Returns all the plans available for EE flow including additional description data.","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EePlans"}}},"description":"List of available plans."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["ee"]},"x-serviceId":"itvEe"},"/ee/plans/{id}":{"get":{"description":"Returns the plan description for EE flow including additional description data.","operationId":"getPlan","parameters":[{"description":"The identifier of the plan received from ee/offers.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EePlanListItem"}}},"description":"List of available plans."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["ee"]},"x-serviceId":"itvEe"},"/ee/token/create":{"get":{"description":"Returns a token for later calls to EE API. TTL is one hour. Recommended is FE refreshes this token before each call.","operationId":"createToken","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EeCreateTokenResponse"}}},"description":"The token."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["ee"]},"x-serviceId":"eeAuth"},"/items/{id}":{"get":{"description":"Returns the details of an item with the specified id.","operationId":"getItem","parameters":[{"description":"The identifier of the item to load.\n\nThe custom identifier of an item can be used here if the `use_custom_id` parameter is true.\n","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"description":"If no value is specified no dependencies are expanded.\n\nIf 'children' is specified then the list of any direct children will be expanded. For example\nseasons of a show or episodes of a season.\n\nIf 'all' is specified then the parent chain will be expanded along with any child list at each level.\nFor example if an episode is specified then its season will be expanded and that season's episode list.\nThe season will have its show expanded and the show will have its season list expanded.\n\nThe 'all' options is useful when you deep link into a show/season/episode for the first time as\nit provides full context for navigating around the show page. Subsequent navigation around\nchildren of the show should only need to request expand of children.\n\nIf 'ancestors' is specified then only the parent chain is included.\n\nIf 'parent' is specified then only the direct parent is included.\n\nIf an expand is specified which is not relevant to the item type, it will be ignored.\n","in":"query","name":"expand","schema":{"enum":["all","children","ancestors","parent"],"type":"string"}},{"description":"Given a provided show id, it can be useful to get the details of a child season. This option\nprovides a means to return the `first` or `latest` season of a show given the show id.\n\nThe `expand` parameter also works here so for example you could land on a show page and request the\nlatest season along with `expand=all`. This would then return the detail of the latest season with\nits list of child episode summaries, and also expand the detail of the show with its list of seasons summaries.\n\nNote the `id` parameter must be a show id for this parameter to work correctly.\n","in":"query","name":"select_season","schema":{"enum":["first","latest"],"type":"string"}},{"description":"Set to true when passing a custom Id as the `id` path parameter.","in":"query","name":"use_custom_id","schema":{"type":"boolean"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemDetail"}}},"description":"The item requested"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"item"},"/items/{id}/children":{"get":{"description":"Returns the List of child summary items under an item.\n\nIf the item is a Season then the children will be episodes and ordered by episode number.\n\nIf the item is a Show then the children will be Seasons and ordered by season number.\n\nReturns 404 if no children found.\n","operationId":"getItemChildrenList","parameters":[{"description":"The identifier of the item whose children to load.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/ListOrder"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"itemChildList"},"/items/{id}/related":{"get":{"description":"Returns the list of items related to the parent item.\n\nNote for now, due to the size of the list being unknown, only a single page will be returned.\n","operationId":"getItemRelatedList","parameters":[{"description":"The identifier of the item to based related items off.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"itemRelatedList"},"/items/{id}/videos":{"get":{"description":"Get the free / public video files associated with an item given maximum resolution,\ndevice type and one or more delivery types.\n\nReturns an array of video file objects which each include a url to a video.\n\nThe first entry in the array contains what is predicted to be the best match.\nThe remainder of the entries, if any, may contain resolutions below what was\nrequests. For example if you request HD-720 the response may also contain\nSD entries.\n\nIf you specify multiple delivery types, then the response array will insert\ntypes in the order you specify them in the query. For example `stream,progressive`\nwould return an array with 0 or more stream files followed by 0 or more progressive files.\n\nIf no files are found a 404 is returned.\n","operationId":"getPublicItemMediaFiles","parameters":[{"description":"The identifier of the item whose video files to load.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/MediaFileDelivery"},{"$ref":"#/components/parameters/MediaFileResolution"},{"$ref":"#/components/parameters/MediaFileFormats"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MediaFile"},"type":"array"}}},"description":"The list of video files available.\nThe first entry containing what is predicted to be the best match.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"media"},"/items/{itemId}/next":{"get":{"description":"Identical to GET /account/profile/items/{itemId}/next route but for users\nthat are not logged in i.e. this endpoint does not require authorisation\n","operationId":"getAnonNextPlaybackItem","parameters":[{"description":"The identifier of the source item to base the next to watch item off.\n","in":"path","name":"itemId","required":true,"schema":{"type":"string"}},{"description":"The maximum rating (inclusive) of an item returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"description":"If no value is specified no dependencies are expanded.\n\nIf 'parent' is specified then only the direct parent will be expanded.\nFor example if an `Episode` then the `Season` would be included.\n\nIf 'ancestors' is specified then the full parent chain is expanded.\nFor example if an `Episode` then both the `Season` and `Show` would be included.\n","in":"query","name":"expand","schema":{"enum":["parent","ancestors"],"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NextPlaybackItem"}}},"description":"The detail of the next item to play."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"itvNightwatch"},"/itv/billinghistory/{platform}":{"post":{"description":"Returns the list of billing records for specified payment platform.","operationId":"getBillingHistory","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvBillingHistoryRequest"}}},"description":"Details of a billing history request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvBillingHistory"}}},"description":"List of billing records."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/cards/{platform}":{"post":{"description":"Get payment card details.","operationId":"getCardDetails","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvGetCardDetailsRequest"}}},"description":"ITV profile token in body.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvCardDetails"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"put":{"description":"Change payment card details.","operationId":"changeCardDetails","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvChangeCardDetailsRequest"}}},"description":"Details of change card details request.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/changeemail":{"post":{"description":"Change email address related to account/profile.\n\nThe expected token scope is Settings.\n","operationId":"changeEmail","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvChangeEmailRequest","type":"string"}}},"description":"New email address & ITV profile token.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Settings"]}],"tags":["itv"]},"x-serviceId":"itvProfile"},"/itv/changemarketing":{"post":{"description":"Change marketing preferences related to account/profile.\n\nThe expected token scope is Settings.\n","operationId":"changeMarketing","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvChangeMarketingRequest","type":"string"}}},"description":"Updated marketing preferences & ITV profile token.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Settings"]}],"tags":["itv"]},"x-serviceId":"itvProfile"},"/itv/deleteaccount":{"post":{"description":"Delete account in compliance with GDPR.\n\nThe expected token scope is Settings.\n","operationId":"deleteAccount","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvDeleteAccountRequest","type":"string"}}},"description":"New email address & ITV profile token.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Settings"]}],"tags":["itv"]},"x-serviceId":"itvGdpr"},"/itv/entitlements/current":{"get":{"description":"Returns current entitlement.","operationId":"getCurrentEntitlement","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvEntitlementCurrent"}}},"description":"Current entitlement."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/entitlements/history":{"get":{"description":"Returns the state of subscription for any payment platform.","operationId":"getEntitlementsHistory","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvEntitlementsHistory"}}},"description":"Details of current subscription."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/featureFlag/{feature}":{"get":{"description":"Gets info whether or not a feature is enabled or disabled using a feature flag. Feature flags are set as a custom field within PM. It also supports custom feature flag data if needed. Such data can be return as well.","operationId":"getFeatureFlag","parameters":[{"description":"The identifier of the feature to check for feature flag.","in":"path","name":"feature","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvFeatureFlag"}}},"description":"Request succeeded."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["itv"]},"x-serviceId":"itvConfig"},"/itv/googlepay/subscription":{"post":{"description":"Get the list of recommended items under the active profile.","operationId":"googlePaySubscription","parameters":[{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvGooglePaySubscriptionRequest"}}},"description":"Details of googlePay subscription request.","required":true},"responses":{"204":{"description":"No Content"},"400":{"description":"missing purchase token/subscription item in body, or subscription item undefined"},"401":{"description":"Invalid or missing grant"},"409":{"description":"Purchase token is already attached to a different user"},"415":{"description":"wrong content-type"},"500":{"description":"something bad has happened"}},"security":[{"profileAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/had/entitlements":{"get":{"description":"Check whether the user has been previously entitled.","operationId":"checkPreviousEntitlements","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvHadEntitlement"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/items/clips":{"post":{"description":"Get the media clip files associated with items.\n","operationId":"getItemsMediaClipFiles","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"$ref":"#/components/requestBodies/ItemDownloadableRequest"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemClipFilesList"}}},"description":"The item id with clip files"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"itvItem"},"/itv/items/downloadable":{"post":{"description":"Returns the details of an item with the specified id.","operationId":"getItemDownloadables","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"$ref":"#/components/requestBodies/ItemDownloadableRequest"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemDownloadableList"}}},"description":"The item requested"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"itvItem"},"/itv/itemsummary/{externalId}":{"get":{"description":"Redirects to corresponding Axis Item details page.","parameters":[{"description":"The external identifier of the item.","in":"path","name":"externalId","required":true,"schema":{"type":"string"}}],"responses":{"302":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Item found."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["itv"]},"x-serviceId":"itvInfo"},"/itv/page":{"get":{"description":"Returns a page with the specified id.\n\nThis is a cut down version for low memory devices.123\n\nIf targeting the search page you must url encode the search term as a parameter\nusing the `q` key. For example if your browser path looks like `/search?q=the`\nthen what you pass to this endpoint would look like `/itv/page?path=/search%3Fq%3Dthe`.\n","operationId":"getItvPage","parameters":[{"description":"The path of the page to load, e.g. '/movies'.","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"The number of items to load when prefetching and paging each list in the page row.","in":"query","name":"list_page_size","schema":{"default":12,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The number of items to load when prefetching a continuous scroll list entry in a page.\n\nBy default any list page entry with template pattern `/^CS\\d+$/` will\nbe considered a continuous scroll list.\n","in":"query","name":"list_page_size_large","schema":{"default":50,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The maximum number of lists to prefetch in the page.","in":"query","name":"max_list_prefetch","schema":{"default":2,"format":"int32","maximum":15,"minimum":0,"type":"integer"}},{"description":"Only relevant when loading item detail pages as these embed a detailed item in the main page entry.\n\nIf no value is specified no item dependencies are expanded.\n\nIf 'children' is specified then the list of any direct children will be expanded. For example\nseasons of a show or episodes of a season.\n\nIf 'all' is specified then the parent chain will be expanded along with any child list at each level.\nFor example if an episode is specified then its season will be expanded and that season's episode list.\nThe season will have its show expanded and the show will have its season list expanded.\n\nThe 'all' options is useful when you deep link into a show/season/episode for the first time as\nit provides full context for navigating around the show page. Subsequent navigation around\nchildren of the show should only need to request expand of children.\n\nIf 'ancestors' is specified then only the parent chain is included\n\nIf an expand is specified which is not relevant to the item type, it will be ignored.\n","in":"query","name":"item_detail_expand","schema":{"enum":["all","children","ancestors"],"type":"string"}},{"description":"Only relevant when loading show detail pages as these embed a detailed item in the main page entry.\n\nSince the introduction of the D1,2,3 templates this parameter is now somewhat redundant, or less\nlikely to have any effect. While it may still be useful in some cases, most of the time the season\nselection will be dictated by the configuration of the rows scheduled on the show detail page.\nThis parameter will only take effect if there are rows used to schedule episodes of a season, like\nD1,2,3, or if no rows have a value set for their `seasonOrder` custom field.\n\nGiven a targeted show page, it can be useful to get the details of a child season. This option\nprovides a means to return the `first` or `latest` season of a show embedded in the page.\n\nThe `expand` parameter also works here so for example you could land on a show page and request the\n`item_detail_select_season=latest` along with `item_detail_expand=all`. This would then return the\ndetail of the latest season with its list of child episode summaries, and also expand\nthe detail of the show with its list of seasons summaries.\n","in":"query","name":"item_detail_select_season","schema":{"enum":["first","latest"],"type":"string"}},{"description":"Only relevant to page entries of type `TextEntry`.\n\nConverts the value of a text page entry to the specified format.\n","in":"query","name":"text_entry_format","schema":{"default":"markdown","enum":["markdown","html"],"type":"string"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}},"description":"The page requested."},"301":{"description":"Returned if feature flag `cd` is set and item detail is requested of an item that has\nCustom Destination set to an External URL. The `Location` response header contains the URL.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["app"]},"x-serviceId":"itvPage"},"/itv/pinauthorization":{"post":{"description":"Provides authorization with parental control pin.\n\nReturns an array containing account token with Playback scope.\n\nRequires access token with Catalog scope.\n\nPin must be a 4-digit string\n","operationId":"getAccountTokenWithPin","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPinAuthRequest"}}},"description":"Details of token request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"items":{"$ref":"#/components/schemas/AccessToken"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvAuth"},"/itv/plan/{platform}":{"post":{"description":"Upgrades the plan for the current user.","operationId":"upgradePlan","parameters":[{"description":"The identifier of the payment platform (stripe/itunes). Only Stripe is supported","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvUpgradePlanRequest"}}},"description":"Details of an upgrade request.","required":true},"responses":{"200":{"description":"Upgrade succeeded."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/plans/{platform}":{"get":{"description":"Returns the plans available for specified payment platform.","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPlans"}}},"description":"List of available plans."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/profile":{"get":{"description":"Returns the ITV profile object.","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The ITV profile object."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"put":{"description":"Update ITV profile.\n\nThe expected token scope is Settings.\n","operationId":"updateProfile","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvUpdateProfileRequest","type":"string"}}},"description":"ITV profile object with updated values & ITV profile token.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Settings"]}],"tags":["itv"]},"x-serviceId":"itvProfile"},"/itv/profile/recommendation/list":{"get":{"description":"Get the list of recommended items under the active profile.","operationId":"getRecommendedList","parameters":[{"description":"List of item types to filter the recommendation list","example":{"item_types":"show,movie"},"explode":false,"in":"query","name":"item_types","schema":{"items":{"description":"item type name","minLength":1,"type":"string"},"type":"array"},"style":"form"},{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":50,"minimum":1,"type":"integer"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"profileAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvRecommendation"},"/itv/profiletoken":{"post":{"description":"Returns the ITV profile token.","operationId":"getItvProfileToken","parameters":[{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvProfileTokenRequest"}}},"description":"Details of token request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvProfileToken"}}},"description":"The ITV profile token."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/purchase/{platform}":{"delete":{"description":"Cancel a plan subscription.\n\nA cancelled subscription will continue to be valid until the subscription\nexpiry date or next renewal date.\n","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvCancelSubscriptionRequest"}}},"description":"Details of a cancellation request.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"get":{"description":"Returns the details of current subscription for specified payment platform.","operationId":"getCurrentSubscription","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvCurrentSubscription"}}},"description":"Details of current subscription."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"post":{"description":"Confirms purchase and returns the details of purchased subscription for specified payment platform.","operationId":"confirmPurchase","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPurchaseRequest"}}},"description":"Details of a purchase request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPurchase"}}},"description":"Details of purchased subscription."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/purchase/{platform}/strong":{"post":{"description":"Confirms purchase and returns the details of purchased subscription for specified payment platform.","operationId":"confirmPurchaseStrong","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPurchaseStrongRequest"}}},"description":"Details of a purchase request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPurchaseStrongResponse"}}},"description":"Details of purchased subscription."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/purchase/{platform}/withoffer":{"post":{"description":"Confirms purchase and returns the details of purchased subscription for specified payment platform.","operationId":"confirmPurchaseWithOffer","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPurchaseWithOfferRequest"}}},"description":"Details of a purchase request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvPurchaseWithOfferResponse"}}},"description":"Details of purchased subscription."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/resubscribe/{platform}":{"post":{"description":"Resubscription for a user.","operationId":"resubscribe","parameters":[{"description":"The id of the plan to renew.","in":"query","name":"planId","required":true,"schema":{"type":"string"}},{"description":"The identifier of the payment platform (stripe/itunes). Only stripe is currently supported.","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Success. The response body is the updated plan information."},"401":{"description":"Invalid Rocket token."},"404":{"description":"Customer not found or no active subscription."},"406":{"description":"Invalid ITV token."},"409":{"description":"Customer not already set for cancellation."},"500":{"description":"Third party API internal server error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/roku/plans":{"get":{"description":"Gets available Roku plans.","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RokuPlans"}}},"description":"Details of available Roku plans."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["itv"]},"x-serviceId":"itvRoku"},"/itv/roku/transaction/{transactionid}":{"post":{"description":"Sends request to execute specified transaction.","operationId":"executeTransaction","parameters":[{"description":"The identifier of the Roku transaction (subscribe/upgrade/downgrade/cancellation).","in":"path","name":"transactionid","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvRokuTransactionRequest"}}},"description":"Details of a transaction request.","required":true},"responses":{"200":{"description":"OK."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["itv"]},"x-serviceId":"itvRoku"},"/itv/save-offer":{"get":{"description":"Checks the provided coupon id for a user. Only Stripe platform is currently supported.","operationId":"getSaveOffer","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvGetDiscountResponse"}}},"description":"Avalable save offer plan, if any."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"post":{"description":"Activates the discount for a user. Only Stripe platform is currently supported.","operationId":"activateSaveOffer","parameters":[{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"The coupon id to be checked.","required":true},"responses":{"204":{"description":"Authentication  passes, the user has an active subscription and the coupon id is valid. The response body is the updated subscription object."},"401":{"description":"Unauthorised. In the case of a token this can happen if the token is missing, invalid, or if the token bearer does not match the user in the path."},"404":{"description":"The customer could not be found.The customer does not have an active subscription. The coupon could not be found."},"406":{"description":"Invalid Token/Customer Not Eligible for Offer."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/subscription/fullpricerenewal":{"get":{"description":"Returns full price renewal state and reason for specific user.","operationId":"getFullPriceRenewal","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvSubscriptionFullPriceRenewal"}}},"description":"full price renewal state and reason for specific user."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"],"x-400":{"description":"Bad request.","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-404":{"description":"Not found.","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-415":{"description":"Unsupported Media Type","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-500":{"description":"Internal server error.","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-default":{"description":"Service error.","schema":{"$ref":"#/components/schemas/ServiceError"}}},"x-serviceId":"itvSubscription"},"/itv/subscription/status/{platform}":{"get":{"description":"Returns status of latest payment intent.","operationId":"getSubscriptionStatus","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvSubscriptionStatusResponse"}}},"description":"Status of the latest payment intent"}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"],"x-400":{"description":"Bad request.","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-404":{"description":"Not found.","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-415":{"description":"Unsupported Media Type","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-500":{"description":"Internal server error.","schema":{"$ref":"#/components/schemas/ServiceError"}},"x-default":{"description":"Service error.","schema":{"$ref":"#/components/schemas/ServiceError"}}},"x-serviceId":"itvSubscription"},"/itv/subscriptionstate":{"get":{"description":"Returns the state of subscription for any payment platform.","operationId":"getSubscriptionState","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvSubscriptionState"}}},"description":"Details of current subscription."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/upcominginvoice":{"get":{"description":"Returns an upcoming invoice","operationId":"getUpcomingInvoice","parameters":[{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvGetDiscountResponse"}}},"description":"Avalable save offer plan, if any."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/updateIntent/strong/{platform}":{"put":{"description":"Change payment method details.","operationId":"updatePaymentIntentStrong","parameters":[{"description":"The identifier of the payment platform (stripe only is currently supported).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvUpdateIntentStrongRequest"}}},"description":"Details of change card details request.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvUpdateIntentStrongResponse"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/updatePayment/strong/{platform}":{"put":{"description":"Change payment method details.","operationId":"updatePaymentMethodStrong","parameters":[{"description":"The identifier of the payment platform (stripe only is currently supported).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvUpdatePaymentStrongRequest"}}},"description":"Details of change card details request.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/voucher/{planId}/{voucherId}":{"get":{"description":"Checks the provided coupon id for a user. Only Stripe platform is currently supported.","operationId":"getVoucherById","parameters":[{"description":"The identifier of the voucher.","in":"path","name":"voucherId","required":true,"schema":{"type":"string"}},{"description":"The identifier of the plan.","in":"path","name":"planId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvVoucher"}}},"description":"Avalable voucher, if any."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/itv/voucher/{platform}":{"post":{"description":"Validates the coupon/voucher for specified payment platform.","operationId":"checkVoucher","parameters":[{"description":"The identifier of the payment platform (stripe/itunes).","in":"path","name":"platform","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvVoucherRequest"}}},"description":"Coupon/voucher.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItvVoucher"}}},"description":"Details of requested coupon/voucher."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"accountAuth":["Catalog"]}],"tags":["itv"]},"x-serviceId":"itvSubscription"},"/lists":{"get":{"description":"Returns an array of item lists with their first page of content resolved.","operationId":"getLists","parameters":[{"description":"A comma delimited list of item list identifiers.\n\nThese can be list ids e.g. `14354,65473,3234`\n\nOr more complex sort/filter queries using pipes e.g.\n\n`14354|max_rating=AUOFLC-E|order=asc|order_by=year-added,65473|page_size=30,3234`\n\n_Note the id must always come first for each encoded list query_\n\nList parameters may be provide without the `param=` prefix e.g. `14354|genre:action`\n\nOnly the following options can be present.\n  - `order`\n  - `order_by`\n  - `max_rating`\n  - `page_size`\n  - `item_type`\n  - `param`\n","explode":false,"in":"query","name":"ids","required":true,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/ListOrder"},{"$ref":"#/components/parameters/ListOrderBy"},{"$ref":"#/components/parameters/ItemType"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ItemList"},"type":"array"}}},"description":"The array of item lists requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"list"},"/lists/{id}":{"get":{"description":"Returns a list of items under the specified item list","operationId":"getList","parameters":[{"description":"The identifier of the list to load.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The page of items to load. Starts from page 1.","in":"query","name":"page","schema":{"default":1,"format":"int32","minimum":1,"type":"integer"}},{"description":"The number of items to return in a page.","in":"query","name":"page_size","schema":{"default":12,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/ListOrder"},{"$ref":"#/components/parameters/ListOrderBy"},{"description":"The list parameter in format 'key:value', e.g. 'genre:action'.","in":"query","name":"param","schema":{"type":"string"}},{"$ref":"#/components/parameters/ItemType"},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}},"description":"The list of items requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"list"},"/page":{"get":{"description":"Returns a page with the specified id.\n\nIf targeting the search page you must url encode the search term as a parameter\nusing the `q` key. For example if your browser path looks like `/search?q=the`\nthen what you pass to this endpoint would look like `/page?path=/search%3Fq%3Dthe`.\n","operationId":"getPage","parameters":[{"description":"The path of the page to load, e.g. '/movies'.","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"The number of items to load when prefetching and paging each list in the page row.","in":"query","name":"list_page_size","schema":{"default":12,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The number of items to load when prefetching a continuous scroll list entry in a page.\n\nBy default any list page entry with template pattern `/^CS\\d+$/` will\nbe considered a continuous scroll list.\n","in":"query","name":"list_page_size_large","schema":{"default":50,"format":"int32","maximum":100,"minimum":1,"type":"integer"}},{"description":"The maximum number of lists to prefetch in the page.","in":"query","name":"max_list_prefetch","schema":{"default":2,"format":"int32","maximum":15,"minimum":0,"type":"integer"}},{"description":"Only relevant when loading item detail pages as these embed a detailed item in the main page entry.\n\nIf no value is specified no item dependencies are expanded.\n\nIf 'children' is specified then the list of any direct children will be expanded. For example\nseasons of a show or episodes of a season.\n\nIf 'all' is specified then the parent chain will be expanded along with any child list at each level.\nFor example if an episode is specified then its season will be expanded and that season's episode list.\nThe season will have its show expanded and the show will have its season list expanded.\n\nThe 'all' options is useful when you deep link into a show/season/episode for the first time as\nit provides full context for navigating around the show page. Subsequent navigation around\nchildren of the show should only need to request expand of children.\n\nIf 'ancestors' is specified then only the parent chain is included\n\nIf an expand is specified which is not relevant to the item type, it will be ignored.\n","in":"query","name":"item_detail_expand","schema":{"enum":["all","children","ancestors"],"type":"string"}},{"description":"Only relevant when loading show detail pages as these embed a detailed item in the main page entry.\n\nSince the introduction of the D1,2,3 templates this parameter is now somewhat redundant, or less\nlikely to have any effect. While it may still be useful in some cases, most of the time the season\nselection will be dictated by the configuration of the rows scheduled on the show detail page.\nThis parameter will only take effect if there are rows used to schedule episodes of a season, like\nD1,2,3, or if no rows have a value set for their `seasonOrder` custom field.\n\nGiven a targeted show page, it can be useful to get the details of a child season. This option\nprovides a means to return the `first` or `latest` season of a show embedded in the page.\n\nThe `expand` parameter also works here so for example you could land on a show page and request the\n`item_detail_select_season=latest` along with `item_detail_expand=all`. This would then return the\ndetail of the latest season with its list of child episode summaries, and also expand\nthe detail of the show with its list of seasons summaries.\n","in":"query","name":"item_detail_select_season","schema":{"enum":["first","latest"],"type":"string"}},{"description":"Only relevant to page entries of type `TextEntry`.\n\nConverts the value of a text page entry to the specified format.\n","in":"query","name":"text_entry_format","schema":{"default":"markdown","enum":["markdown","html"],"type":"string"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}},"description":"The page requested."},"301":{"description":"Returned if feature flag `cd` is set and item detail is requested of an item that has\nCustom Destination set to an External URL. The `Location` response header contains the URL.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["app"]},"x-serviceId":"page"},"/plans/{id}":{"get":{"description":"Returns the details of a Plan with the specified id.","parameters":[{"description":"The identifier of the Plan to load.","in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Plan"}}},"description":"The Plan requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"subscription"},"/register":{"post":{"description":"Register a new user, creating them an account.\n\nRegistration, when successful, will return an array of access tokens so the user is\nimmediately signed in.\n\nIt returns Catalog and Commerce scoped tokens for both Account and Profile.\nThe Commerce ones are intended to allow the purchase of a subscription plan\nin the step after registration, without the user being prompted to enter\ntheir username and password again.\n\nAn email will also be sent with a link they need to click to confirm their\nemail address. This confirmation is done via the /verify-email endpoint.\n","operationId":"register","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationRequest"}}},"description":"Registration details.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"items":{"$ref":"#/components/schemas/AccessToken"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["registration"]},"x-serviceId":"itvRegistration"},"/request-password-reset":{"post":{"description":"Request the password of an account's primary profile be reset.\n\nShould be called when a user has forgotten their password.\n\nThis will send an email with a password reset link to the email address of the\nprimary profile of an account.\n\nThe link, once clicked, should take the user to the \"reset-password\" page of the\nwebsite. Here they will enter their new password and submit to the /reset-password\nendpoint here, along with the password reset token provided in the original link.\n","operationId":"forgotPassword","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetEmailRequest"}}},"description":"Email address of account to request a password reset on.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["support"]},"x-serviceId":"itvPassword"},"/reset-password":{"post":{"description":"When a user requests to reset their password via the /request-password-reset endpoint, an\nemail is sent to the email address of the primary profile of the account. This email contains a link\nwith a reset token as query parameter. The link should take the user to the \"reset-password\"\npage of the website.\n\nFrom the reset-password page a user should enter the new password they wish to use. \nIt should then be submitted to this endpoint,\nalong with the reset token from the email link. \nThe token should be provided in the body as resetToken property.\n","operationId":"resetPassword","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequest"}}},"description":"ITV reset token from email link and a new password.","required":true},"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["support"]},"x-serviceId":"itvPassword"},"/samsung-preview":{"get":{"description":"Returns public preview for Samsung based on the page '/samsung-preview' configured in PresentationManager.\nThere is a hard limit of max 40 items to be returned. It splits evenly items count into the page rows, remaining items are added into the first row.\n","operationId":"getPublicPreview","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SamsungPreview"}}},"description":"The samsung public preview requested."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["itv"]},"x-serviceId":"itvSamsung"},"/schedules":{"get":{"description":"Returns schedules for a defined set of channels over a requested period.\n\nSchedules are requested in hour blocks and returned grouped by the channel\nthey belong to.\n\nFor example, to load 12 hours of schedules for channels `4343` and `5234`,\non 21/2/2017 starting from 08:00.\n\n```\nchannels=4343,5234\ndate=2017-02-21\nhour=8\nduration=12\n```\n\nPlease remember that `date` and `hour` combined represent a normal datetime, \nso they should be converted to UTC on the client - this will help to avoid \nissues with EPG schedules near midnight.\n\nIf a channel id is passed which doesn't exist then this endpoint will\nreturn an empty schedule list for it. If instead we returned 404,\nthis would invalidate all other channel schedules in the same request\nwhich would be unfriendly for clients presenting these channel schedules.\n","operationId":"getSchedules","parameters":[{"description":"The list of channel ids to get schedules for.","explode":false,"in":"query","name":"channels","required":true,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"The date to target in ISO format, e.g. `2017-05-23` (converted to UTC - see main description).\n\nThe base hour requested will belong to this date.\n","in":"query","name":"date","required":true,"schema":{"format":"date","type":"string"}},{"description":"The base hour in the day, defined by the `date` parameter, you wish to load schedules for \n(converted to UTC - see main description).\n\nFrom 0 to 23, where 0 is midnight.\n","in":"query","name":"hour","required":true,"schema":{"format":"int32","maximum":23,"minimum":0,"type":"integer"}},{"description":"The number of hours of schedules to load from the base `hour` parameter.\n\nThis may be negative or positive depending on whether you want to load past or future schedules.\n\nMinimum value is -24, maximum is 24. A value of zero is invalid.\n","in":"query","name":"duration","required":true,"schema":{"format":"int32","maximum":24,"minimum":-24,"type":"integer"}},{"description":"Flag indicating whether schedules should intersect or be contained in the\nprovided interval.\n\nIf set to `true`, the result will contain all schedules where either\nschedule start time or end time touches the provided interval.\n\nIf set to `false`, only schedules fully contained in the given period\nwill be returned.\n","in":"query","name":"intersect","schema":{"default":false,"type":"boolean"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ItemScheduleList"},"type":"array"}}},"description":"An array of schedule lists for each channel requested.\n\nThe order of the channels will match the order of channel ids passed during the request.\n"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"schedule"},"/search":{"get":{"description":"Search the catalog of items and people.","operationId":"search","parameters":[{"description":"The search term to query.","in":"query","name":"term","required":true,"schema":{"type":"string"}},{"description":"By default people, movies and tv (shows + programs) will be included\nin the search results.\n\nIf the `cas` feature flag is set, \"other\" items (`customAsset`s) will\nalso be included by default\n\nIf you don't want all of these types you can specifiy the specific\nincludes you care about.\n","explode":false,"in":"query","name":"include","schema":{"items":{"enum":["tv","movies","people","other"],"type":"string"},"type":"array"},"style":"form"},{"description":"When this option is set, instead of all search result items being returned\nin a single list, they will instead be returned under two lists. One for\nmovies and another for tv (shows + programs).\n\nif the `cas` feature flag is set, a third `other` list will be\nincluded containing `customAsset` results\n\nDefault is undefined meaning items will be returned in a single list.\n\nThe array of `people` results will always be separate from items.\n","in":"query","name":"group","schema":{"type":"boolean"}},{"description":"The maximum number of results to return.","in":"query","name":"max_results","schema":{"default":20,"format":"int32","maximum":50,"minimum":1,"type":"integer"}},{"description":"The maximum rating (inclusive) of items returned, e.g. 'auoflc-pg'.","in":"query","name":"max_rating","schema":{"type":"string"}},{"$ref":"#/components/parameters/Device"},{"$ref":"#/components/parameters/Subscription"},{"$ref":"#/components/parameters/Segments"},{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResults"}}},"description":"OK."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"tags":["content"]},"x-serviceId":"search"},"/verify-email":{"post":{"description":"When an account is created an email is sent to the email address of the new account.\nThis contains a link, which once clicked, verifies the email address of the account is correct.\n\nThe link contains a token as a query parameter which should be passed as the authorization\nbearer token to this endpoint to complete email verification.\n\nThe token has en expiry, so if the link is not clicked before it expires, the account holder\nmay need to request a new verification email be sent. This can be done via the endpoint\n/account/request-email-verification.\n","operationId":"verifyEmail","parameters":[{"$ref":"#/components/parameters/FeatureFlags"},{"$ref":"#/components/parameters/Language"}],"responses":{"204":{"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Bad request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Invalid access token."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Forbidden."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Not found."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Unsupported Media Type"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Internal server error."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceError"}}},"description":"Service error."}},"security":[{"verifyEmailAuth":[]}],"tags":["support"]},"x-serviceId":"support"}},"components":{"parameters":{"Device":{"description":"The type of device the content is targeting.","in":"query","name":"device","schema":{"default":"web_browser","type":"string"}},"FeatureFlags":{"description":"The set of opt in feature flags which cause breaking changes to responses.\n\nWhile Rocket APIs look to avoid breaking changes under the active major version, the formats of responses\nmay need to evolve over this time.\n\nThese feature flags allow clients to select which response formats they expect and avoid breaking\nclients as these formats evolve under the current major version.\n\n### Flags\n\n- `all` - Enable all flags. Useful for testing. _Don't use in production_.\n- `idp` - Dynamic item detail pages with schedulable rows.\n- `ldp` - Dynamic list detail pages with schedulable rows.\n- `hb` - Hubble formatted image urls.\n- `rpt` - Updated resume point threshold logic.\n- `cas` - \"Custom Asset Search\", inlcude `customAssets` in search results.\n- `lrl` - Do not pre-populate related list if more than `max_list_prefetch` down the page.\n- `cd` - Custom Destination support.\n\nSee the `feature-flags.md` for available flag details.\n","explode":false,"in":"query","name":"ff","schema":{"items":{"enum":["all","idp","ldp","hb","rpt","cas","lrl","cd"],"type":"string"},"type":"array"},"style":"form"},"ItemType":{"description":"The item type to filter by. Defaults to unspecified.","in":"query","name":"item_type","schema":{"enum":["movie","show","season","episode","program","link","trailer","channel","customAsset"],"type":"string"},"x-enumEmoji":{"channel":"📺","episode":"📺","link":"🔗","movie":"🎬","program":"🎟","season":"📺","show":"📺","trailer":"🖥"}},"Language":{"description":"Language code for the preferred language to be returned in the response.\n\nParameter value is case-insensitive and should be\n  - a valid 2 letter language code without region such as en, de\n  - or with region such as en_us, en_au\n\nIf undefined then defaults to 'en', unless the server has been configured\nwith a custom default.\n\nSee https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n","in":"query","name":"lang","schema":{"type":"string"}},"ListOrder":{"description":"The list sort order, either 'asc' or 'desc'.","in":"query","name":"order","schema":{"default":"desc","enum":["asc","desc"],"type":"string"}},"ListOrderBy":{"description":"What to order by.","in":"query","name":"order_by","schema":{"enum":["a-z","release-year","date-added"],"type":"string"}},"MediaFileDelivery":{"description":"The video delivery type you require.","explode":false,"in":"query","name":"delivery","required":true,"schema":{"items":{"enum":["stream","progressive","download"],"type":"string"},"type":"array"},"style":"form"},"MediaFileFormats":{"description":"The set of media file formats that the device supports, in the order of preference.\n\nWhen provided, Rocket API returns only media files in formats specified in this parameter. For each resolution, only the first media file of matching supported format is returned. Files of different resolutions may be of different supported media file formats.\n\n`external` value is reserved for project customizations where the real MIME type of the file on the specified URL is unknown at the time of ingestion.\n\nWhen not provided, Rocket API uses the legacy `User-Agent` header-based logic to find matching media files.\n","explode":false,"in":"query","name":"formats","schema":{"items":{"enum":["mp4","mpd","hls","external"],"type":"string"},"type":"array"},"style":"form"},"MediaFileResolution":{"description":"The maximum resolution the device to playback the media can present.","in":"query","name":"resolution","required":true,"schema":{"enum":["HD-4K","HD-1080","HD-720","SD","External"],"type":"string"}},"Segments":{"description":"The list of segments to filter the response by.","explode":false,"in":"query","name":"segments","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},"Subscription":{"description":"The active subscription code.","in":"query","name":"sub","schema":{"type":"string"}}},"requestBodies":{"ItemDownloadableRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemDownloadableRequest"}}},"description":"The item Axis ids joined string with comma.","required":true}},"schemas":{"AccessToken":{"additionalProperties":false,"properties":{"accountCreated":{"description":"When a `UserAccount` token is issued during a single-sign-on flow\na user may have been automatically registered if they didn't\nhave an account already. If this occurs then `accountCreated`\nwill be `true`.\n","type":"boolean"},"expirationDate":{"description":"The timestamp this token expires.","format":"date-time","type":"string"},"refreshable":{"description":"True if this token can be refreshed, false if not.","type":"boolean"},"type":{"description":"The type of the token.","enum":["UserAccount","UserProfile"],"type":"string"},"value":{"description":"The token value used for authenticated requests.","type":"string"}},"required":["value","refreshable","expirationDate","type"],"type":"object","x-emoji":"🔑"},"Account":{"additionalProperties":true,"properties":{"address":{"$ref":"#/components/schemas/Address"},"defaultPaymentInstrumentId":{"description":"The id of the payment instrument to use by default for account transactions.\n\n **DEPRECATED** The property `defaultPaymentMethodId` is now preferred.\n","type":"string","x-deprecated":"Replaced with defaultPaymentMethodId"},"defaultPaymentMethodId":{"description":"The id of the payment method to use by default for account transactions.","type":"string"},"emailVerified":{"description":"Whether the email address has been verified.\n\nUsers who receive an emailed verification url click the link to verify their email address.\n","type":"boolean"},"entitlements":{"description":"The list of entitlements to playback specific items.","items":{"$ref":"#/components/schemas/Entitlement"},"type":"array"},"firstName":{"description":"The first name of the account holder.","type":"string"},"id":{"description":"The id of the account.","type":"string"},"isFirstTimeSubscriber":{"description":"Whether the account has the very first subscription.","type":"boolean"},"lastName":{"description":"The last name of the account holder.","type":"string"},"marketingEnabled":{"description":"Whether the account has opted in or out of marketing material.","type":"boolean"},"minRatingPlaybackGuard":{"description":"The classification rating defining the minimum rating level a user should be\nforced to enter the account pin code for playback. Anything at this rating\nlevel or above will require the pin for playback.\n\ne.g. AUOFLC-MA15+\n\nIf you want to disable this guard pass an empty string or `null`.\n","type":"string"},"pinEnabled":{"description":"When an account level pin is defined this will be true.","type":"boolean"},"primaryProfileId":{"description":"The id of the primary profile.","type":"string"},"profiles":{"description":"The list of profiles under this account.","items":{"$ref":"#/components/schemas/ProfileSummary"},"type":"array"},"segments":{"description":"The segments an account has been placed under","items":{"type":"string"},"type":"array"},"subscriptionCode":{"description":"The active subscription code for an account.\n\nThe value of this should be passed to any endpoints accepting a `sub` query parameter.\n","type":"string"},"subscriptions":{"description":"The list of subscriptions, if any, the account has signed up to.","items":{"$ref":"#/components/schemas/Subscription"},"type":"array"},"trackingEnabled":{"description":"Whether usage tracking is associated with the account or anonymous.","type":"boolean"},"usedFreeTrial":{"description":"Whether the account has used up their free trial period of a plan.","type":"boolean"}},"required":["id","email","trackingEnabled","pinEnabled","marketingEnabled","primaryProfileId","subscriptionCode","profiles"],"type":"object","x-emoji":"👤"},"AccountDevices":{"additionalProperties":false,"properties":{"deregistrationWindow":{"$ref":"#/components/schemas/DeviceRegistrationWindow"},"devices":{"description":"The array of registered playack devices.","items":{"$ref":"#/components/schemas/Device"},"type":"array"},"maxRegistered":{"description":"The maximum number of playback devices that can be registered\nunder an account at a single time.\n\nIf there is no maximum defined this value will be `-1`.\n","format":"int32","type":"integer"},"registrationWindow":{"$ref":"#/components/schemas/DeviceRegistrationWindow"}},"required":["devices","maxRegistered"],"type":"object"},"AccountNonce":{"additionalProperties":false,"properties":{"value":{"description":"The nonce value.","type":"string"}},"required":["value"],"type":"object"},"AccountTokenByCodeRequest":{"additionalProperties":false,"properties":{"code":{"description":"The generated device authorization code.","type":"string"},"id":{"description":"The unique identifier for the device e.g. serial number.","type":"string"},"scopes":{"description":"The scope(s) of the token(s) required.","items":{"enum":["Catalog","Commerce","Settings","Playback"],"type":"string"},"type":"array"}},"required":["id","code","scopes"],"type":"object"},"AccountTokenRequest":{"additionalProperties":false,"example":{"email":"","password":"","scopes":["Catalog"]},"properties":{"cookieType":{"description":"If you specify a cookie type then a content filter cookie will be returned\nalong with the token(s). This is only intended for web based clients which\nneed to pass the cookies to a server to render a page based on the user's\ncontent filters e.g subscription code.\n\nIf type `Session` the cookie will be session based.\nIf type `Persistent` the cookie will have a medium term lifespan.\nIf undefined no cookies will be set.\n","enum":["Session","Persistent"],"type":"string"},"email":{"description":"The email associated with the account.","type":"string"},"password":{"description":"The password associated with the account.","type":"string"},"scopes":{"description":"The scope(s) of the tokens required.\nFor each scope listed an Account and Profile token of that scope will be returned\n","items":{"enum":["Catalog","Commerce","Settings","Playback"],"type":"string"},"type":"array"}},"required":["email","password","scopes"],"type":"object"},"AccountUpdateRequest":{"additionalProperties":false,"properties":{"address":{"$ref":"#/components/schemas/Address"},"defaultPaymentInstrumentId":{"description":"The id of the payment instrument to use by default for account transactions.\n\n**DEPRECATED** The property `defaultPaymentMethodId` is now preferred.\n","type":"string","x-deprecated":"Replaced with defaultPaymentMethodId"},"defaultPaymentMethodId":{"description":"The id of the payment method to use by default for account transactions.","type":"string"},"firstName":{"description":"The first name of the account holder.","type":"string"},"lastName":{"description":"The last name of the account holder.","type":"string"},"minRatingPlaybackGuard":{"description":"The classification rating defining the minimum rating level a user should be\nforced to enter the account pin code for playback. Anything at this rating\nlevel or above will require the pin for playback.\n\ne.g. AUOFLC-MA15+\n\nIf you want to disable this guard pass an empty string or `null`.\n","type":"string"},"segments":{"description":"The segments an account should be placed under","items":{"type":"string"},"type":"array"},"trackingEnabled":{"description":"Whether usage tracking is associated with an account or anonymous.","type":"boolean"}},"type":"object"},"AddPaymentMethodRequest":{"additionalProperties":false,"properties":{"makeDefault":{"description":"Whether this payment method should become the account default when \nmaking purchases.\n\nNote that if this is the first payment method of type Card being added to an\naccount then it will become the default whether this property is true or false.\n","type":"boolean"},"token":{"description":"The payment provider token representing a payment method, obtained by\nsubmitting payment method details to your third party provider.\n","type":"string"},"type":{"description":"The type of payment method.","enum":["Card"],"type":"string"}},"required":["token","type"],"type":"object"},"Address":{"additionalProperties":false,"properties":{"addressLine1":{"description":"The first line of the street address.","type":"string"},"addressLine2":{"description":"The second line of the street address.","type":"string"},"city":{"description":"The city name.","type":"string"},"country":{"description":"The country name or code.","type":"string"},"postcode":{"description":"The postal or zip code.","type":"string"},"state":{"description":"The state name or abbreviation.","type":"string"}},"type":"object","x-emoji":"🏠"},"AppConfig":{"additionalProperties":false,"properties":{"classification":{"additionalProperties":{"$ref":"#/components/schemas/Classification"},"description":"The map of classification ratings.","type":"object"},"display":{"$ref":"#/components/schemas/AppConfigDisplay"},"general":{"$ref":"#/components/schemas/AppConfigGeneral"},"i18n":{"$ref":"#/components/schemas/AppConfigI18n"},"linear":{"$ref":"#/components/schemas/AppConfigLinear"},"navigation":{"$ref":"#/components/schemas/Navigation"},"playback":{"$ref":"#/components/schemas/AppConfigPlayback"},"sitemap":{"items":{"$ref":"#/components/schemas/PageSummary"},"type":"array"},"subscription":{"$ref":"#/components/schemas/AppConfigSubscription"}},"type":"object","x-emoji":"⚙️"},"AppConfigDisplay":{"additionalProperties":false,"properties":{"themes":{"description":"An array of globally configured themes.","items":{"$ref":"#/components/schemas/Theme"},"type":"array"}},"required":["themes"],"type":"object"},"AppConfigGeneral":{"additionalProperties":false,"properties":{"currencyCode":{"description":"The currency code to target.","type":"string"},"customFields":{"additionalProperties":true,"description":"A map of custom configuration fields.","type":"object"},"defaultTimeZone":{"description":"The default time zone of the site. e.g. \"Etc/GMT\"","type":"string"},"facebookAppId":{"description":"The Facebook application id associated with an environment.","type":"string"},"gaToken":{"description":"A Google Analytics token to track applicaton user events.","type":"string"},"itemImageTypes":{"additionalProperties":{"type":"string"},"description":"A map of default item image types where the key is the item types.","type":"object"},"mandatorySignIn":{"description":"Whether to require sign in for customers to access content.","type":"boolean"},"maxUserRating":{"description":"The maximum value allowed for user ratings.","format":"int32","type":"integer"},"stripeKey":{"description":"The public Stripe key to use for payment transactions.","type":"string"},"websiteUrl":{"description":"The url of the primary website.","format":"uri","type":"string"}},"type":"object"},"AppConfigI18n":{"additionalProperties":false,"properties":{"languages":{"description":"An array of available languages.","items":{"$ref":"#/components/schemas/Language"},"type":"array"}},"required":["languages"],"type":"object"},"AppConfigLinear":{"additionalProperties":false,"properties":{"scheduleCacheMaxAgeMinutes":{"description":"The maximum minutes of schedule cache time.","format":"int32","type":"integer"},"viewingWindowDaysAfter":{"description":"Number of available upcoming day schedules.","format":"int32","type":"integer"},"viewingWindowDaysBefore":{"description":"Number of available day schedules in the past.","format":"int32","type":"integer"}},"type":"object"},"AppConfigPlayback":{"additionalProperties":false,"properties":{"chainPlayCountdown":{"description":"The number of seconds before autoplay of next video.\n\nIf set to 0 there will be no autoplay.\n","format":"int32","type":"integer"},"chainPlaySqueezeback":{"description":"The number of seconds before the end of playback when the current video\nshould be minimized and user options are presented within the video player.\n\nIf set to 0 there will be no squeezeback.\n","format":"int32","type":"integer"},"chainPlayTimeout":{"description":"The number of minutes of user inactivity before autoplay is paused.\n\nIf set to 0 there will be no autoplay timeout.\n","format":"int32","type":"integer"},"heartbeatFrequency":{"description":"How often a heartbeat should be renewed during playback.","format":"int32","type":"integer"},"viewEventPoints":{"description":"An array of percentage points in which to fire off plabyack view events.\nFor example a value of 0.5 would indicate that an event should be\nfired when the user is half way through the video.\nOften known as quartiles when four equaly spread event points.\n","items":{"maximum":1,"minimum":0,"type":"number"},"type":"array"}},"required":["heartbeatFrequency","viewEventPoints","chainPlaySqueezeback","chainPlayTimeout","chainPlayCountdown"],"type":"object"},"AppConfigSubscription":{"additionalProperties":false,"properties":{"plans":{"description":"The available public plans a user can subscribe to.","items":{"$ref":"#/components/schemas/Plan"},"type":"array"}},"type":"object"},"Bookmark":{"additionalProperties":false,"properties":{"creationDate":{"description":"The date the bookmark was created.","format":"date-time","type":"string"},"itemId":{"description":"The id of the item bookmarked.","type":"string"}},"required":["itemId","creationDate"],"type":"object","x-emoji":"🔖"},"BtPlanListItem":{"additionalProperties":false,"properties":{"amount":{"description":"The price of a plan. If a free plan then undefined.","format":"float","type":"number"},"ctaText":{"description":"The textual description.","type":"string"},"currency":{"description":"The currency a plan is offered in.","type":"string"},"description":{"description":"The textual description.","type":"string"},"ees07PlanDescription":{"type":"string"},"ees07PlanTitle":{"type":"string"},"ees07Title":{"type":"string"},"headerText":{"description":"The textual description.","type":"string"},"heroText":{"description":"The textual description.","type":"string"},"id":{"description":"The identifier of a plan.","type":"string"},"interval":{"description":"The type of billing period used.","enum":["day","week","month","year","none"],"type":"string"},"intervalCount":{"description":"Given the `interval` this is how frequently it will run. e.g. every 2 weeks.","format":"int32","type":"integer"},"longText":{"description":"The textual description.","type":"string"},"nickname":{"description":"The title of a plan.","type":"string"},"noThanksText":{"type":"string"},"product":{"description":"The product of a plan.","type":"string"},"switchingText":{"type":"string"},"termsAndConditionsItunes":{"type":"string"},"termsAndConditionsStripe":{"type":"string"},"trialPeriodDays":{"description":"How many days a trial period runs for a plan. Only valid if `hasTrialPeriod` is true.","format":"int32","type":"integer"}},"required":["id","nickname","product","currency","trialPeriodDays","description","heroText","ctaText","headerText","longText"],"type":"object","x-emoji":"💳"},"BtPlans":{"additionalProperties":false,"properties":{"plans":{"description":"The list of available plans.","items":{"$ref":"#/components/schemas/BtPlanListItem"},"type":"array"}},"required":["plans"],"type":"object"},"BtValidateTokenResponse":{"type":"object"},"ChangePasswordRequest":{"additionalProperties":false,"properties":{"password":{"description":"The new password for the account.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["password","profileToken"],"type":"object"},"ChangePinRequest":{"additionalProperties":false,"properties":{"pin":{"description":"The new pin to set.","type":"string"}},"required":["pin"],"type":"object"},"Classification":{"allOf":[{"$ref":"#/components/schemas/ClassificationSummary"},{"properties":{"advisoryText":{"description":"Parental advisort text.","type":"string"},"images":{"additionalProperties":{"format":"uri","type":"string"},"type":"object"},"level":{"description":"The level of this classification when compared with its siblings.\nA higher level means a greater restriction.\nEach classification in a system should have a unique level.\n","format":"int32","type":"integer"},"system":{"description":"The parent system code of the classification.","type":"string"}},"required":["level","system","images"],"type":"object"}]},"ClassificationSummary":{"properties":{"code":{"description":"The unique code for a classification.","type":"string"},"name":{"description":"The name of the classification for display.","type":"string"}},"required":["code","name"],"type":"object","x-emoji":"🔞"},"ContinueWatchingListData":{"additionalProperties":false,"description":"List data for ContinueWatching List","properties":{"itemInclusions":{"additionalProperties":{"$ref":"#/components/schemas/ContinueWatchingListDataExpansion"},"description":"Object where keys are itemIds for the items in the list and values are objects\ncontaining additional items (either episode/season/show) that were requested\nin the \"include\" query option.\n\nFor example if you request the ContinueWatching list with \"season\" items in\nthe list, you can specify `include=episode` and then the specific next episode\nwill be returned in this object.\n","type":"object"}},"type":"object"},"ContinueWatchingListDataExpansion":{"additionalProperties":false,"properties":{"episode":{"$ref":"#/components/schemas/ItemSummary"},"season":{"$ref":"#/components/schemas/ItemSummary"},"show":{"$ref":"#/components/schemas/ItemSummary"}},"type":"object"},"Credit":{"allOf":[{"$ref":"#/components/schemas/Person"},{"properties":{"character":{"description":"The name of the character.","type":"string"},"role":{"description":"The type of role the credit performed, e.g. actor.","enum":["actor","associateproducer","coactor","director","executiveproducer","filminglocation","guest","narrator","other","presenter","producer","productmanager","thememusicby","voice","writer"],"type":"string"}},"required":["role"],"type":"object"}]},"Device":{"additionalProperties":false,"properties":{"id":{"description":"The unique identifier for this device e.g. serial number.","type":"string"},"name":{"description":"The human recognisable name for this device.","type":"string"},"registrationDate":{"description":"The date this device was registered.","format":"date-time","type":"string"},"type":{"description":"The device type e.g. web_browser.","type":"string"}},"required":["id","name","registrationDate","type"],"type":"object","x-emoji":"📱"},"DeviceAuthorizationCode":{"additionalProperties":false,"properties":{"code":{"description":"The generated device authorization code.","type":"string"}},"required":["code"],"type":"object"},"DeviceRegistrationRequest":{"additionalProperties":false,"properties":{"id":{"description":"The unique identifier for this device e.g. serial number.","type":"string"},"name":{"description":"A human recognisable name for this device.","type":"string"},"type":{"description":"The device type e.g. web_browser.","type":"string"}},"required":["id","name","type"],"type":"object"},"DeviceRegistrationWindow":{"additionalProperties":false,"properties":{"endDate":{"description":"The end date of the current period.\n\nThis is based on the value of `startDate` plus the number of days defined by  `periodDays`.\n","format":"date-time","type":"string"},"limit":{"description":"The maximum de/registrations that can be made in a period.","format":"int32","type":"integer"},"periodDays":{"description":"The number of days a de/registration period runs for.","format":"int32","type":"integer"},"remaining":{"description":"The remaining de/registrations that can be made in the current period.","format":"int32","type":"integer"},"startDate":{"description":"The start date of the current period.\n\nThis is based on the earliest device de/registrations in the past N days, where\nN is defined by `periodDays`.\n\nIf no device has been de/registered then start date will be from the current date.\n","format":"date-time","type":"string"}},"required":["periodDays","limit","remaining","startDate","endDate"],"type":"object"},"EeBtEligibility":{"additionalProperties":false,"properties":{"eligible":{"description":"Whether or not user is eligible","type":"boolean"},"plan":{"description":"The identifier of a plan.","type":"string"},"source":{"description":"Stripe etc.","type":"string"}},"required":["eligible"],"type":"object"},"EeCreatePinRequest":{"additionalProperties":false,"example":{"accessToken":"wxg0fG4GQjBQVjAT0AhKxSkrxFbs","msisdn":"447931234567","trackingHeader":"1234E682-2C74-46A4-B8B3-5BBD3B3E165D"},"properties":{"accessToken":{"description":"EE API authorization Token received from GET /ee/token/create.","type":"string"},"msisdn":{"description":"The msisdn.","type":"string"},"trackingHeader":{"description":"trackingHeader","type":"string"}},"required":["msisdn","accessToken"],"type":"object"},"EeCreatePinResponse":{"additionalProperties":false,"properties":{"pinReference":{"description":"The pinReference.","type":"string"},"trackingHeader":{"description":"trackingHeader","type":"string"}},"required":["pinReference","trackingHeader"],"type":"object"},"EeCreateTokenResponse":{"additionalProperties":false,"properties":{"accessToken":{"description":"The authentication token for later use to call EE endpoints.","type":"string"},"expiresIn":{"type":"number"},"tokenType":{"type":"string"}},"required":["token"],"type":"object"},"EeIdentityRequest":{"additionalProperties":false,"example":{"accessToken":"wxg0fG4GQjBQVjAT0AhKxSkrxFbs","sessionId":"7897E682-2C74-46A4-B8B3-5BBD3B3E165D"},"properties":{"accessToken":{"description":"EE API authorization Token received from GET /ee/token/create.","type":"string"},"sessionId":{"description":"The sessionId returned in the ee/session response.","type":"string"}},"required":["sessionId","accessToken"],"type":"object"},"EeIdentityResponse":{"additionalProperties":false,"properties":{"brand":{"description":"The operator brand.","type":"string"},"brandCode":{"description":"The brand code.","type":"string"},"msisdn":{"description":"The msisdn.","type":"string"},"trackingHeader":{"description":"trackingHeader","type":"string"}},"required":["msisdn","trackingHeader"],"type":"object"},"EeOfferItem":{"additionalProperties":false,"properties":{"name":{"description":"The identifier of an offer.","type":"string"}},"required":["name"],"type":"object","x-emoji":"💳"},"EeOffersRequest":{"additionalProperties":false,"example":{"accessToken":"wxg0fG4GQjBQVjAT0AhKxSkrxFbs","msisdn":"447931234567","trackingHeader":"1234E682-2C74-46A4-B8B3-5BBD3B3E165D"},"properties":{"accessToken":{"description":"EE API authorization Token received from GET /ee/token/create.","type":"string"},"msisdn":{"description":"The msisdn.","type":"string"},"trackingHeader":{"description":"trackingHeader.","type":"string"}},"required":["msisdn","accessToken"],"type":"object"},"EeOffersResponse":{"additionalProperties":false,"properties":{"eligibleOffers":{"description":"The list of eligible offers.","items":{"$ref":"#/components/schemas/EeOfferItem"},"type":"array"}},"required":["eligibleOffers"],"type":"object"},"EePlanListItem":{"additionalProperties":false,"properties":{"amount":{"description":"The price of a plan. If a free plan then undefined.","format":"float","type":"number"},"ctaText":{"description":"The textual description.","type":"string"},"currency":{"description":"The currency a plan is offered in.","type":"string"},"description":{"description":"The textual description.","type":"string"},"headerText":{"description":"The textual description.","type":"string"},"heroText":{"description":"The textual description.","type":"string"},"id":{"description":"The identifier of a plan.","type":"string"},"interval":{"description":"The type of billing period used.","enum":["day","week","month","year","none"],"type":"string"},"intervalCount":{"description":"Given the `interval` this is how frequently it will run. e.g. every 2 weeks.","format":"int32","type":"integer"},"longText":{"description":"The textual description.","type":"string"},"nickname":{"description":"The title of a plan.","type":"string"},"product":{"description":"The product of a plan.","type":"string"},"trialPeriodDays":{"description":"How many days a trial period runs for a plan. Only valid if `hasTrialPeriod` is true.","format":"int32","type":"integer"}},"required":["id","nickname","product","currency","trialPeriodDays","description","heroText","ctaText","headerText","longText"],"type":"object","x-emoji":"💳"},"EePlans":{"additionalProperties":false,"properties":{"plans":{"description":"The list of available plans.","items":{"$ref":"#/components/schemas/EePlanListItem"},"type":"array"}},"required":["plans"],"type":"object"},"EeSessionIdRequest":{"additionalProperties":false,"example":{"accessToken":"xxxDDxBoHnNG1qYWutsRqE0dHxxx","clientIP":"123.456.789"},"properties":{"accessToken":{"description":"EE API authorization Token received from GET /ee/token/create.","type":"string"},"clientIP":{"description":"The IP address of the requesting device.","type":"string"}},"required":["clientIP","accessToken"],"type":"object"},"EeSessionIdResponse":{"additionalProperties":false,"properties":{"sessionId":{"description":"The assigned SessionId.","type":"string"}},"required":["sessionId"],"type":"object"},"EeValidatePinRequest":{"additionalProperties":false,"example":{"accessToken":"wxg0fG4GQjBQVjAT0AhKxSkrxFbs","pin":"123456","pinReference":"9897222307534","trackingHeader":"1234E682-2C74-46A4-B8B3-5BBD3B3E165D"},"properties":{"accessToken":{"description":"EE API authorization Token received from GET /ee/token/create.","type":"string"},"pin":{"description":"The pin entered by a user. 6 digits","type":"string"},"pinReference":{"description":"The pinReference.","type":"string"},"trackingHeader":{"description":"Tracking header to be able to search logs for a specific user requests. If not provided it will be generated. FE should store it for later user.","type":"string"}},"required":["pinReference","pin","accessToken"],"type":"object"},"EeValidatePinResponse":{"additionalProperties":false,"properties":{"pinValid":{"description":"The validation status.","type":"string"},"trackingHeader":{"description":"trackingHeader","type":"string"}},"required":["validationStatus","trackingHeader"],"type":"object"},"Entitlement":{"allOf":[{"$ref":"#/components/schemas/OfferRights"},{"properties":{"activationDate":{"description":"The date of activation. If no date is defined the entitlement has not be activated.","format":"date-time","type":"string"},"classification":{"$ref":"#/components/schemas/ClassificationSummary"},"creationDate":{"description":"The date the entitlement was created.","format":"date-time","type":"string"},"expirationDate":{"description":"The date the entitlement expires.","format":"date-time","type":"string"},"itemId":{"description":"The id of the item this entitlement is for.","type":"string"},"itemType":{"description":"The type of item this entitlement is for.","enum":["movie","show","season","episode","program","link","trailer","channel","customAsset"],"type":"string","x-enumEmoji":{"channel":"📺","episode":"📺","link":"🔗","movie":"🎬","program":"🎟","season":"📺","show":"📺","trailer":"🖥"}},"mediaDuration":{"description":"The duration of the entitled media.","format":"int32","type":"integer"},"planId":{"description":"The id of the plan this entitlement is for.","type":"string"},"playCount":{"description":"How many times the media has been played.","format":"int32","type":"integer"},"remainingDownloads":{"description":"How many more downloads of this media are available.","format":"int32","type":"integer"}},"type":"object","x-emoji":"🎟"}]},"ExclusionRule":{"additionalProperties":false,"description":"Defines playback exclusion rules for an Offer or Entitlement.","properties":{"description":{"type":"string"},"device":{"description":"The device type that the exclusion rules apply to.","type":"string"},"excludeAirplay":{"description":"Prevent airplay from an apple device.","type":"boolean"},"excludeChromecast":{"description":"Prevent chromecasting.","type":"boolean"},"excludeDelivery":{"enum":["Stream","Download","StreamOrDownload","ProgressiveDownload","None"],"type":"string"},"excludeMinResolution":{"enum":["SD","HD-720","HD-1080","HD-4K","External","Unknown"],"type":"string"}},"type":"object","x-emoji":"⛔️"},"ItemClipFile":{"additionalProperties":true,"properties":{"channels":{"description":"The number of audio channels.","format":"int32","type":"integer"},"deliveryType":{"description":"The way in which the media file is delivered.","enum":["Stream","Progressive","Download"],"type":"string"},"drm":{"description":"The type of drm used to encrypt the media. 'None' if unencrypted.","type":"string"},"format":{"description":"The format the media was encoded in.","type":"string"},"height":{"description":"The height of the video media.","format":"int32","type":"integer"},"language":{"description":"The language code for the media, e.g. 'en'.","type":"string"},"name":{"description":"The name of the media file.","type":"string"},"resolution":{"description":"The resolution of the video media.","enum":["SD","HD-720","HD-1080","HD-4K","External","Unknown"],"type":"string"},"url":{"description":"The url to access the media file.","format":"uri","type":"string"},"width":{"description":"The width of the video media.","format":"int32","type":"integer"}},"required":["name","deliveryType","url","drm","format","resolution","width","height","language"],"type":"object","x-emoji":"📀"},"ItemClipFiles":{"properties":{"clips":{"description":"Array of item clip file.","items":{"$ref":"#/components/schemas/ItemClipFile"},"type":"array"},"id":{"description":"Unique identifier for an Item","type":"string"}},"required":["id","clips"],"type":"object"},"ItemClipFilesList":{"additionalProperties":false,"description":"A list of items with its clip files.","properties":{"items":{"description":"A list of items","items":{"$ref":"#/components/schemas/ItemClipFiles"},"type":"array"}},"required":["items"],"type":"object","x-emoji":"📚"},"ItemCustomMetadata":{"description":"Custom metadata associated with an item.","properties":{"name":{"description":"The name of the custom metadata.","type":"string"},"value":{"description":"The value of the custom metadata.","type":"string"}},"required":["name","value"],"type":"object"},"ItemDetail":{"allOf":[{"$ref":"#/components/schemas/ItemSummary"},{"properties":{"copyright":{"description":"Copyright information about this item","type":"string"},"credits":{"description":"A list of credits associated with this item.","items":{"$ref":"#/components/schemas/Credit"},"type":"array"},"customMetadata":{"description":"An ordered list of custom name-value-pair item metadata.\n\nUsually displayed on an item detail page.\n","items":{"$ref":"#/components/schemas/ItemCustomMetadata"},"type":"array"},"description":{"description":"The description of this item.","type":"string"},"distributor":{"description":"The distributor of this item.","type":"string"},"episodes":{"$ref":"#/components/schemas/ItemList"},"eventDate":{"description":"The optional date of an event.\nSpecific to a Program item type.\n","format":"date-time","type":"string"},"genrePaths":{"description":"An array of genre paths mapping to the values within the `genres` array from ItemSummary.\n","items":{"type":"string"},"type":"array"},"location":{"description":"The optional location (e.g. city) of an event.\nSpecific to a Program item type.\n","type":"string"},"season":{"$ref":"#/components/schemas/ItemDetail"},"seasons":{"$ref":"#/components/schemas/ItemList"},"show":{"$ref":"#/components/schemas/ItemDetail"},"totalUserRatings":{"description":"The total number of users who have rated this item.","format":"int32","minimum":0,"type":"integer"},"trailers":{"description":"A list of trailers associated with this item.","items":{"$ref":"#/components/schemas/ItemSummary"},"type":"array"},"venue":{"description":"The optional venue of an event.\nSpecific to a Program item type.\n","type":"string"}},"type":"object"}]},"ItemDownloadable":{"discriminator":{"propertyName":"type"},"properties":{"downloadable":{"description":"is the item downloadable?","type":"boolean"},"id":{"description":"Unique identifier for an Item","type":"string"}},"required":["id","downloadable"],"type":"object","x-emoji":"📘"},"ItemDownloadableList":{"additionalProperties":false,"description":"A list of items downloadable data.","properties":{"items":{"description":"A list of items","items":{"$ref":"#/components/schemas/ItemDownloadable"},"type":"array"}},"required":["items"],"type":"object","x-emoji":"📚"},"ItemDownloadableRequest":{"additionalProperties":false,"example":{"ids":"1234,2345,3456"},"properties":{"ids":{"description":"Comma-separated list of AXIS item ids.","type":"string"}},"required":["ids"],"type":"object"},"ItemList":{"additionalProperties":false,"description":"A pageable list of items.","properties":{"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for a list.","type":"object"},"description":{"description":"A full description of this list.","type":"string"},"id":{"description":"The id of this list","type":"string"},"images":{"additionalProperties":{"format":"uri","type":"string"},"type":"object"},"itemTypes":{"description":"The types of items in the list","items":{"enum":["movie","show","season","episode","program","link","trailer","channel","customAsset"],"type":"string","x-enumEmoji":{"channel":"📺","episode":"📺","link":"🔗","movie":"🎬","program":"🎟","season":"📺","show":"📺","trailer":"🖥"}},"type":"array"},"items":{"description":"A list of items","items":{"$ref":"#/components/schemas/ItemSummary"},"type":"array"},"listData":{"$ref":"#/components/schemas/ListData"},"paging":{"$ref":"#/components/schemas/Pagination"},"parameter":{"description":"If this list is parameterized, then this contains the parameter of the list in the format `name:value`.\nFor example the Movies Genre list will take a parameter `genre` with a given value. e.g. `genre:action` or `genre:drama`.","type":"string"},"path":{"description":"The path of this list","type":"string"},"shortDescription":{"description":"A short description of this list.","type":"string"},"size":{"description":"The total size of the list","format":"int32","type":"integer"},"tagline":{"description":"The tagline of the item.","type":"string"},"themes":{"items":{"$ref":"#/components/schemas/Theme"},"type":"array"},"title":{"description":"The title of this list","type":"string"}},"required":["id","size","items","paging","path"],"type":"object","x-emoji":"📚"},"ItemPurchase":{"additionalProperties":false,"properties":{"id":{"description":"The identifier of the purchased item.","type":"string"},"ownership":{"description":"The ownership of the purchased item.","enum":["Subscription","Free","Rent","Own","None"],"type":"string"},"resolution":{"description":"The resolution of the purchased item.","enum":["SD","HD-720","HD-1080","HD-4K","External","Unknown"],"type":"string"},"title":{"description":"The title of the purchased item.","type":"string"},"type":{"description":"The type of item purchased.","enum":["movie","show","season","episode","program","link","trailer","channel","customAsset"],"type":"string","x-enumEmoji":{"channel":"📺","episode":"📺","link":"🔗","movie":"🎬","program":"🎟","season":"📺","show":"📺","trailer":"🖥"}}},"required":["id","ownership","resolution","title","type"],"type":"object","x-emoji":"💰"},"ItemSchedule":{"additionalProperties":true,"properties":{"blackout":{"description":"True if this schedule represents time when the channel is completely off air.","type":"boolean"},"channelId":{"description":"The id of the channel item this schedule belongs to.","type":"string"},"endDate":{"description":"The date and time this schedule ends.","format":"date-time","type":"string"},"featured":{"description":"True if this is a featured item schedule.","type":"boolean"},"id":{"type":"string"},"live":{"description":"True if this is a live event.","type":"boolean"},"repeat":{"description":"True if this has been aired previously on the same channel.","type":"boolean"},"startDate":{"description":"The date and time this schedule starts.","format":"date-time","type":"string"}},"required":["id","channelId","startDate","endDate"],"type":"object","x-emoji":"⏳"},"ItemScheduleList":{"additionalProperties":false,"properties":{"channelId":{"description":"The id of the channel the schedules belong to.","type":"string"},"endDate":{"description":"The date and time this list of schedules ends.","format":"date-time","type":"string"},"schedules":{"description":"The list of item schedules.","items":{"$ref":"#/components/schemas/ItemSchedule"},"type":"array"},"startDate":{"description":"The date and time this list of schedules starts.","format":"date-time","type":"string"}},"required":["channelId","startDate","endDate","schedules"],"type":"object"},"ItemSummary":{"discriminator":{"propertyName":"type"},"properties":{"advisoryText":{"description":"Advisory text about this item, related to the classification","type":"string"},"availableEpisodeCount":{"description":"The number of available episodes in the season, if the item is a season.","format":"int32","type":"integer"},"availableSeasonCount":{"description":"The number of available seasons in the show, if the item is a show.","format":"int32","type":"integer"},"averageUserRating":{"description":"The average user rating.\nWhen based on user ratings from our system this will be out of 10.\n","format":"int32","minimum":0,"type":"number"},"badge":{"description":"The badge this item has.","type":"string"},"channelShortCode":{"description":"The channel short code, if the item is a channel.","type":"string"},"classification":{"$ref":"#/components/schemas/ClassificationSummary"},"contextualTitle":{"description":"A contextually relative title to display after a parent title.\nMostly applicable to Season, Episode and Trailer.\n","type":"string"},"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for an item.","type":"object"},"customId":{"description":"A custom identifier for this item.\nFor example the id for this item under a different content system.\n","type":"string"},"duration":{"description":"The duration of the media in seconds.","format":"int32","minimum":0,"type":"integer"},"episodeCount":{"description":"The number of episodes in the season, if the item is a season.","format":"int32","type":"integer"},"episodeName":{"description":"The full name of an episode.","type":"string"},"episodeNumber":{"description":"The number of an episode, if the item is an episode.","format":"int32","type":"integer"},"genres":{"description":"The array of genres this item belongs to.","items":{"type":"string"},"type":"array"},"hasClosedCaptions":{"description":"Whether closed captioning is available.","type":"boolean"},"id":{"description":"Unique identifier for an Item","type":"string"},"images":{"additionalProperties":{"format":"uri","type":"string"},"type":"object"},"offers":{"description":"The array of available offers for this item.","items":{"$ref":"#/components/schemas/Offer"},"type":"array"},"path":{"description":"The path to the detail page of this item. Can be used to load the item detail page via the /page endpoint.","type":"string"},"releaseYear":{"description":"The year this item was released","format":"int32","type":"integer"},"scopes":{"description":"The scopes for this item","items":{"type":"string"},"type":"array"},"seasonId":{"description":"The identifier of the season this item belongs to, if the item is an episode.","type":"string"},"seasonNumber":{"description":"The number of a season, if the item is a season.","format":"int32","type":"integer"},"shortDescription":{"description":"A truncated description of the item","type":"string"},"showId":{"description":"The identifier of the show this item belongs to, if the item is a season or episode.","type":"string"},"showTitle":{"type":"string","x-descritpion":"The title of the show this item belongs to, if the item is a season or episode."},"subtype":{"description":"Subtype of the item. Mainly used to identify different types when `type`\nis `customAsset`\n","type":"string"},"tagline":{"description":"The tagline of the item","type":"string"},"themes":{"description":"Gets themes associated with the item","items":{"$ref":"#/components/schemas/Theme"},"type":"array"},"title":{"description":"The display title of the item.","type":"string"},"type":{"description":"The type of item","enum":["movie","show","season","episode","program","link","trailer","channel","customAsset"],"type":"string","x-enumEmoji":{"channel":"📺","episode":"📺","link":"🔗","movie":"🎬","program":"🎟","season":"📺","show":"📺","trailer":"🖥"}},"watchPath":{"description":"The path to watch this item, if the item is a watchable type, e.g. a `movie`, `program` and `episode`.","type":"string"}},"required":["id","type","path","title"],"type":"object","x-emoji":"📘"},"ItvAssignBtTokenRequest":{"additionalProperties":false,"properties":{"profileToken":{"description":"The ITV profile token","type":"string"},"token":{"description":"The validated userToken.","type":"string"}},"required":["token","profileToken"],"type":"object"},"ItvAssignMsisdnRequest":{"additionalProperties":false,"properties":{"eeProductId":{"description":"Product id from /ee/offers","type":"string"},"msisdn":{"description":"The validated msisdn.","type":"string"},"profileToken":{"description":"The ITV profile token","type":"string"},"trackingHeader":{"description":"trackingHeader","type":"string"}},"required":["msisdn","profileToken","trackingHeader","eeProductId"],"type":"object"},"ItvBillingHistory":{"additionalProperties":false,"properties":{"payment_history":{"description":"The array of objects with subscription payment details.","items":{"$ref":"#/components/schemas/ItvBillingHistoryRecord"},"type":"array"}},"required":["payment_history"],"type":"object","x-emoji":"💳"},"ItvBillingHistoryRecord":{"additionalProperties":false,"properties":{"card":{"description":"The card info.","type":"object"},"charge":{"description":"The amount charged.","type":"object"},"invoice":{"description":"The object with invoice details.","type":"object"},"subscription":{"description":"The object with subscription payment details.","type":"object"}},"required":["card","subscription","invoice","charge"],"type":"object","x-emoji":"💳"},"ItvBillingHistoryRequest":{"additionalProperties":false,"properties":{"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvCancelSubscriptionRequest":{"additionalProperties":false,"properties":{"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvCardDetails":{"additionalProperties":false,"properties":{"card_type":{"description":"The payment card type (Visa/Mastercard/etc).","type":"string"},"exp_month":{"description":"Expiry date month.","format":"int32","type":"integer"},"exp_year":{"description":"Expiry date year.","format":"int32","type":"integer"},"last4":{"description":"The last 4 digit of card number.","type":"string"}},"required":["card_type","last4","exp_month","exp_year"],"type":"object","x-emoji":"💳"},"ItvChangeCardDetailsRequest":{"additionalProperties":false,"properties":{"cardToken":{"description":"The credit card token.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken","cardToken"],"type":"object"},"ItvChangeEmailRequest":{"additionalProperties":false,"properties":{"email":{"description":"New email address for account/profile.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["email","profileToken"],"type":"object"},"ItvChangeMarketingRequest":{"additionalProperties":false,"properties":{"emailOptIn":{"description":"Updated marketing preferences for account/profile.","type":"boolean"},"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["emailOptIn","profileToken"],"type":"object"},"ItvCurrentSubscription":{"additionalProperties":false,"properties":{"cancelAtPeriodEnd":{"description":"The cancellation period end flag.","type":"boolean"},"collectionMethod":{"description":"The description of payment collection method.","type":"string"},"created":{"description":"The creation timestamp.","format":"int32","type":"integer"},"currentPeriodEnd":{"description":"The end of period timestamp.","format":"int32","type":"integer"},"currentPeriodStart":{"description":"The start of period timestamp.","format":"int32","type":"integer"},"plan":{"description":"The plan used during subsribing.","type":"object"},"status":{"description":"The status of subscription.","type":"string"}},"required":["collectionMethod","cancelAtPeriodEnd","created","currentPeriodEnd","currentPeriodStart","plan","status"],"type":"object","x-emoji":"💰"},"ItvDeleteAccountRequest":{"additionalProperties":false,"properties":{"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvEntitlement":{"additionalProperties":false,"properties":{"card_type":{"description":"Start of subscription.","format":"date-time","type":"string"},"expiry":{"description":"Expiry of subscription.","format":"date-time","type":"string"},"plan":{"description":"Purchased plan data.","type":"object"},"source":{"description":"Source platform of purchase.","type":"string"},"subscriptionId":{"description":"Id of subscription.","type":"string"}},"required":["start","expiry","source","subscriptionId","plan"],"type":"object","x-emoji":"💳"},"ItvEntitlementCancelation":{"additionalProperties":false,"properties":{"cancelled_at":{"description":"Cancelation datetime.","format":"date-time","type":"string"},"itvId":{"description":"Itv internal id.","type":"string"},"source":{"description":"Source platform of cancelation.","type":"string"},"subscriptionId":{"description":"Id of subscription.","type":"string"}},"required":["itvId","source","cancelled_at","subscriptionId"],"type":"object","x-emoji":"💳"},"ItvEntitlementCurrent":{"additionalProperties":false,"properties":{"source":{"description":"one of “itunes”, “stripe”, “amazon”, “google”","type":"string"}},"required":["source"],"type":"object"},"ItvEntitlementPlan":{"additionalProperties":false,"properties":{"cost":{"description":"Source platform of purchase.","format":"int32","type":"integer"},"interval":{"description":"The type of billing period used.","enum":["day","week","month","year","none"],"type":"string"},"trialLength":{"description":"Given the `interval` this is how frequently it will run. e.g. every 2 weeks.","format":"int32","type":"integer"},"type":{"description":"Type of the plan.","type":"string"}},"required":["type","interval","cost","trialLength"],"type":"object","x-emoji":"💳"},"ItvEntitlementsHistory":{"additionalProperties":false,"properties":{"cancellations":{"description":"The results of availability checks.","items":{"$ref":"#/components/schemas/ItvEntitlementCancelation"},"type":"array"},"entitlements":{"description":"The results of availability checks.","items":{"$ref":"#/components/schemas/ItvEntitlement"},"type":"array"}},"required":["entitlements","cancellations"],"type":"object","x-emoji":"💳"},"ItvFeatureFlag":{"additionalProperties":false,"properties":{"enabled":{"description":"Is the feature enabled?","type":"boolean"},"flag":{"description":"Feature flag data.","type":"string"}},"required":["enabled"],"type":"object","x-emoji":"💳"},"ItvGetCardDetailsRequest":{"additionalProperties":false,"properties":{"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvGetDiscountResponse":{"additionalProperties":false,"properties":{"currency":{"description":"Payment currency.","type":"string"},"description":{"description":"Description","type":"string"},"headline":{"description":"Headline","type":"string"},"id":{"description":"The if of a discount for a user.","type":"string"},"initialCost":{"description":"The initial cost.","type":"number"},"longDescription":{"description":"Long description","type":"string"},"nickname":{"description":"Discount nickname.","type":"string"},"offerdurationperiod":{"description":"How long the descount will be valid for.","type":"string"},"shortDescription":{"description":"Short description","type":"string"}},"required":["id"],"type":"object","x-emoji":"💳"},"ItvGooglePaySubscriptionRequest":{"additionalProperties":false,"properties":{"purchaseToken":{"description":"the unique identifier for this purchase","type":"string"},"subscriptionItem":{"description":"the SKU of the item from the play console","type":"string"}},"required":["purchaseToken","subscriptionItem"],"type":"object"},"ItvHadEntitlement":{"additionalProperties":false,"properties":{"hasHadEntitlements":{"description":"whether the user has been previously entitlement","type":"boolean"}},"required":["hasHadEntitlements"],"type":"object"},"ItvPinAuthRequest":{"additionalProperties":false,"properties":{"cookieType":{"description":"If you specify a cookie type then a content filter cookie will be returned\nalong with the token(s). This is only intended for web based clients which\nneed to pass the cookies to a server to render a page based on the user's\ncontent filters e.g subscription code.\n\nIf type `Session` the cookie will be session based.\nIf type `Persistent` the cookie will have a medium term lifespan.\nIf undefined no cookies will be set.\n","enum":["Session","Persistent"],"type":"string"},"pin":{"description":"The 4-digit parental control pin.","type":"string"},"scopes":{"description":"The scope(s) of the token(s) required.","items":{"enum":["Catalog","Commerce","Settings","Playback"],"type":"string"},"type":"array"}},"required":["pin"],"type":"object"},"ItvPlanListItem":{"additionalProperties":false,"properties":{"amount":{"description":"The price of a plan. If a free plan then undefined.","format":"float","type":"number"},"currency":{"description":"The currency a plan is offered in.","type":"string"},"description":{"description":"The textual description.","type":"string"},"id":{"description":"The identifier of a plan.","type":"string"},"interval":{"description":"The type of billing period used.","enum":["day","week","month","year","none"],"type":"string"},"intervalCount":{"description":"Given the `interval` this is how frequently it will run. e.g. every 2 weeks.","format":"int32","type":"integer"},"nickname":{"description":"The title of a plan.","type":"string"},"product":{"description":"The product description.","type":"string"},"savingLabel":{"description":"The saving label.","type":"string"},"switchingText":{"description":"The text to switch for.","type":"string"},"trialPeriodDays":{"description":"How many days a trial period runs for a plan. Only valid if `hasTrialPeriod` is true.","format":"int32","type":"integer"}},"required":["id","nickname","amount","currency","interval","intervalCount","product","description"],"type":"object","x-emoji":"💳"},"ItvPlans":{"additionalProperties":false,"properties":{"plans":{"description":"The list of available plans.","items":{"$ref":"#/components/schemas/ItvPlanListItem"},"type":"array"}},"required":["plans"],"type":"object"},"ItvProfileToken":{"additionalProperties":false,"properties":{"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object","x-emoji":"🔑"},"ItvProfileTokenRequest":{"additionalProperties":false,"properties":{"password":{"description":"The password.","type":"string"}},"required":["password"],"type":"object"},"ItvPurchase":{"additionalProperties":false,"properties":{"customerId":{"description":"The identifier of user in payment system.","type":"string"},"planId":{"description":"The identifier of subscription plan.","type":"string"},"subscriptionId":{"description":"The identifier of subscription in payment system.","type":"string"}},"required":["planId"],"type":"object","x-emoji":"💰"},"ItvPurchaseRequest":{"additionalProperties":false,"properties":{"cardToken":{"description":"The credit card token.","type":"string"},"planId":{"description":"The identifier of the plan to purchase.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"},"voucher":{"description":"A coupon/voucher for a discount.","type":"string"}},"required":["planId","profileToken","cardToken"],"type":"object"},"ItvPurchaseStrongRequest":{"additionalProperties":false,"properties":{"paymentMethodFromToken":{"description":"A paymentMethodFromToken.","type":"string"},"paymentMethodId":{"description":"A paymentMethodId from Stripe.","type":"string"},"planId":{"description":"The identifier of the plan to purchase.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"},"voucher":{"description":"A coupon/voucher for a discount.","type":"string"}},"required":["planId","profileToken"],"type":"object"},"ItvPurchaseStrongResponse":{"additionalProperties":false,"properties":{"clientSecret":{"description":"clientSecret.","type":"string"},"customerId":{"description":"The identifier of user in payment system.","type":"string"},"intentId":{"description":"IntentId.","type":"string"},"intentType":{"description":"intentType.","type":"string"},"planId":{"description":"The identifier of subscription plan.","type":"string"},"status":{"description":"Status.","type":"string"},"subscriptionId":{"description":"The identifier of subscription in payment system.","type":"string"}},"type":"object","x-emoji":"💰"},"ItvPurchaseWithOfferRequest":{"additionalProperties":false,"properties":{"couponId":{"description":"A coupon/voucher for a discount. Can be retrieved from GET itv/voucher/{platform} endpoint","type":"string"},"paymentMethodFromToken":{"description":"A paymentMethodFromToken.","type":"string"},"paymentMethodId":{"description":"A paymentMethodId from Stripe.","type":"string"},"planId":{"description":"The identifier of the plan to purchase.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["planId","profileToken","couponId"],"type":"object"},"ItvPurchaseWithOfferResponse":{"additionalProperties":false,"properties":{"clientSecret":{"description":"clientSecret.","type":"string"},"customerId":{"description":"The identifier of user in payment system.","type":"string"},"intentId":{"description":"IntentId.","type":"string"},"intentType":{"description":"intentType.","type":"string"},"paymentMethodId":{"description":"Payment Method ID","type":"string"},"status":{"description":"Status.","type":"string"},"subscriptionId":{"description":"The identifier of subscription in payment system.","type":"string"}},"type":"object","x-emoji":"💰"},"ItvRokuTransactionRequest":{"additionalProperties":false,"properties":{"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvSubscriptionFullPriceRenewal":{"additionalProperties":false,"properties":{"fullPriceRenewal":{"description":"full price renewal state.","type":"boolean"},"reason":{"description":"reason of full price renewal state.","type":"string"}},"required":["fullPriceRenewal","reason"],"type":"object"},"ItvSubscriptionState":{"additionalProperties":false,"properties":{"effective_entitlements":{"description":"The array of entitlement objects.","items":{"$ref":"#/components/schemas/ItvEntitlement"},"type":"array"},"failed_availability_checks":{"description":"The results of availability checks.","items":{"type":"string"},"type":"array"},"purchased":{"description":"The array of entitlement names.","items":{"type":"string"},"type":"array"},"source":{"description":"The payment provider (stripe/itunes)","type":"string"}},"required":["failed_availability_checks","effective_entitlements","source","purchased"],"type":"object","x-emoji":"💳"},"ItvSubscriptionStatusResponse":{"additionalProperties":false,"properties":{"is_active":{"description":"Defines whether last payment intent was successful or not.","type":"boolean"}},"required":["is_active"],"type":"object"},"ItvUpdateIntentStrongRequest":{"additionalProperties":false,"properties":{"paymentMethodFromToken":{"description":"A paymentMethodFromToken.","type":"string"},"paymentMethodId":{"description":"The paymentMethodId from Stripe.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvUpdateIntentStrongResponse":{"additionalProperties":false,"properties":{"clientSecret":{"description":"ClientSecret.","type":"string"},"intentId":{"description":"IntentId.","type":"string"},"intentType":{"description":"IntentType.","type":"string"},"status":{"description":"Status.","type":"string"}},"type":"object","x-emoji":"💰"},"ItvUpdatePaymentStrongRequest":{"additionalProperties":false,"properties":{"paymentMethodFromToken":{"description":"A paymentMethodFromToken.","type":"string"},"paymentMethodId":{"description":"The paymentMethodId from Stripe.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvUpdateProfileRequest":{"additionalProperties":false,"properties":{"dateOfBirth":{"description":"The date of birth.","type":"string"},"email":{"description":"The email address.","type":"string"},"firstName":{"description":"Last name.","type":"string"},"lastName":{"description":"First name.","type":"string"},"postcode":{"description":"The postal code.","type":"string"},"profileToken":{"description":"The ITV profile token.","type":"string"},"title":{"description":"The title.","type":"string"}},"required":["profileToken"],"type":"object"},"ItvUpgradePlanRequest":{"additionalProperties":false,"properties":{"planId":{"description":"The identifier of the plan to purchase.","type":"string"}},"required":["planId"],"type":"object"},"ItvVoucher":{"additionalProperties":false,"properties":{"display":{"$ref":"#/components/schemas/ItvVoucherDisplay"},"id":{"description":"The coupon/voucher.","type":"string"},"links":{"$ref":"#/components/schemas/ItvVoucherLinks"},"offerType":{"description":"The voucher offer type.","enum":["stripe","talon one"],"type":"string"}},"required":["id","offerType","display","links"],"type":"object","x-emoji":"💰"},"ItvVoucherDisplay":{"additionalProperties":true,"properties":{"currency":{"description":"Currency.","type":"string"},"discountPrice":{"description":"Discount price.","type":"string"},"duration":{"description":"Duration.","type":"string"},"durationInMonths":{"description":"Duration in months.","format":"integer","type":"number"},"headlineLabel":{"description":"Headline label.","type":"string"},"initialCost":{"description":"InitialCost.","format":"float","type":"number"},"longDescription":{"description":"Long description.","type":"string"},"percentOff":{"description":"Percent off.","format":"float","type":"number"},"savingLabel":{"description":"SavingLabel.","type":"string"},"shortDescription":{"description":"Short description.","type":"string"}},"required":["type"],"type":"object"},"ItvVoucherLinks":{"additionalProperties":true,"properties":{"redeem":{"$ref":"#/components/schemas/ItvVoucherLinksHref"},"self":{"$ref":"#/components/schemas/ItvVoucherLinksHref"}},"required":["self","redeem"],"type":"object"},"ItvVoucherLinksHref":{"additionalProperties":true,"properties":{"href":{"description":"The voucher link.","type":"string"}},"required":["href"],"type":"object"},"ItvVoucherRequest":{"additionalProperties":false,"properties":{"voucher":{"description":"The voucher.","type":"string"}},"required":["voucher"],"type":"object"},"Language":{"additionalProperties":false,"properties":{"code":{"description":"The ISO language code of the language e.g. \"en-US\".\nSee https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n","type":"string"},"label":{"description":"Display label for the language.","type":"string"},"title":{"description":"Display title for the language.","type":"string"}},"required":["code","label","title"],"type":"object","x-emoji":"🌎"},"ListData":{"additionalProperties":false,"description":"Extra data to accompany ItemList content. The (single) key in the object is\nthe list name and the data changes depending on the list\n","properties":{"ContinueWatching":{"$ref":"#/components/schemas/ContinueWatchingListData"}},"type":"object"},"MediaFile":{"additionalProperties":false,"properties":{"channels":{"description":"The number of audio channels.","format":"int32","type":"integer"},"deliveryType":{"description":"The way in which the media file is delivered.","enum":["Stream","Progressive","Download"],"type":"string"},"drm":{"description":"The type of drm used to encrypt the media. 'None' if unencrypted.","type":"string"},"format":{"description":"The format the media was encoded in.","type":"string"},"height":{"description":"The height of the video media.","format":"int32","type":"integer"},"language":{"description":"The language code for the media, e.g. 'en'.","type":"string"},"name":{"description":"The name of the media file.","type":"string"},"resolution":{"description":"The resolution of the video media.","enum":["SD","HD-720","HD-1080","HD-4K","External","Unknown"],"type":"string"},"url":{"description":"The url to access the media file.","format":"uri","type":"string"},"width":{"description":"The width of the video media.","format":"int32","type":"integer"}},"required":["name","deliveryType","url","drm","format","resolution","width","height","language"],"type":"object","x-emoji":"📀"},"NavContent":{"properties":{"imageType":{"description":"The image type to target when rendering items of the list.\n\ne.g wallpaper, poster, hero3x1, logo.\n","type":"string"},"list":{"$ref":"#/components/schemas/ItemList"},"title":{"description":"The title of the embedded navigation content.","type":"string"}},"type":"object"},"NavEntry":{"additionalProperties":false,"properties":{"children":{"description":"Child nav entries.","items":{"$ref":"#/components/schemas/NavEntry"},"type":"array"},"content":{"$ref":"#/components/schemas/NavContent"},"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for a nav entry.","type":"object"},"depth":{"description":"The depth of the NavEntry (top level is 0)","format":"int32","minimum":0,"type":"integer"},"featured":{"description":"True if this is a featured menu item.\n\nFeatured menu items may have a more prominent presentation than others in the navigation.\n","type":"boolean"},"icon":{"description":"The icon for this nav entry.","type":"string"},"label":{"description":"The text label for this nav entry.","type":"string"},"path":{"description":"The path this nav entry links to.\nMay be undefined if the nav entry is not clickable e.g. a nav heading.\nIf the value begins with `http` then it's an external url.\n","type":"string"}},"required":["depth"],"type":"object"},"Navigation":{"additionalProperties":false,"properties":{"account":{"$ref":"#/components/schemas/NavEntry"},"copyright":{"description":"Copyright information.","type":"string"},"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for navigation.","type":"object"},"footer":{"$ref":"#/components/schemas/NavEntry"},"header":{"description":"The header navigation.","items":{"$ref":"#/components/schemas/NavEntry"},"type":"array"},"mobile":{"$ref":"#/components/schemas/NavEntry"}},"required":["header"],"type":"object"},"NextPlaybackItem":{"additionalProperties":false,"properties":{"firstWatchedDate":{"description":"Time when the item corresponding to the itemId passed in by the client was\nfirst watched by the user. Will be `undefined` if the user has never\nwatched the item.\n\nIt can be used to identify the scenario where the user has never watched a\nshow and we are suggesting they watch the first episode (i.e. it is\nmissing in this scenario)\n\n**This will only be populated when a `showId` is passed in**\n","format":"date-time","type":"string"},"lastWatchedDate":{"description":"Time when the item corresponding to the itemId passed in by the client was\nlast watched by the user. Will be `undefined` if the user has never\nwatched the item.\n\nIt can be used to identify the scenario where the user has never watched a\nshow and we are suggesting they watch the first episode (i.e. it is\nmissing in this scenario)\n\n**This will only be populated when a `showId` is passed in**\n","format":"date-time","type":"string"},"next":{"$ref":"#/components/schemas/ItemDetail"},"sourceItemId":{"description":"The id of the item used to determine the next item to play.","type":"string"},"suggestionType":{"description":"Field indicating the type or reason behind the suggestion.\n\nId Type   | Show Watched Status| Value            | Description\n----------|--------------------|------------------|---------------------------------\nshowId    | Unwatched          | StartWatching    |\nshowId    | Completely watched | RestartWatching  |\nshowId    | Partly watched     | ContinueWatching | Suggested episode partly watched\nshowId    | Partly watched     | Sequential       | Suggested episode unwatched\nepisodeId | Any                | Sequential       | Next episode in show\n","enum":["StartWatching","ContinueWatching","RestartWatching","Sequential","None"],"type":"string"}},"required":["sourceItemId"],"type":"object"},"Offer":{"allOf":[{"$ref":"#/components/schemas/OfferRights"},{"properties":{"availability":{"enum":["Available","ComingSoon"],"type":"string"},"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for an offer.","type":"object"},"endDate":{"format":"date-time","type":"string"},"id":{"type":"string"},"name":{"type":"string"},"price":{"format":"float","type":"number"},"startDate":{"format":"date-time","type":"string"},"subscriptionCode":{"description":"The code of the subscription this offer is offered under, if any.","type":"string"}},"required":["price","availability"],"type":"object","x-emoji":"💰"}]},"OfferRights":{"description":"The base type for both Offer and Entitlement.","properties":{"deliveryType":{"enum":["Stream","Download","StreamOrDownload","ProgressiveDownload","None"],"type":"string"},"exclusionRules":{"description":"Any specific playback exclusion rules.","items":{"$ref":"#/components/schemas/ExclusionRule"},"type":"array"},"maxDownloads":{"description":"The maximum number of allowed downloads.","format":"int32","type":"integer"},"maxPlays":{"description":"The maximum number of allowed plays.","format":"int32","type":"integer"},"ownership":{"enum":["Subscription","Free","Rent","Own","None"],"type":"string"},"playPeriod":{"description":"The length of time in minutes which the rental will last once played for the first time.","format":"int32","type":"integer"},"rentalPeriod":{"description":"The length of time in minutes which the rental will last once purchased.","format":"int32","type":"integer"},"resolution":{"enum":["SD","HD-720","HD-1080","HD-4K","External","Unknown"],"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"}},"required":["deliveryType","scopes","resolution","ownership"],"type":"object","x-emoji":"🎟"},"Page":{"allOf":[{"$ref":"#/components/schemas/PageSummary"},{"properties":{"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for a page.","type":"object"},"entries":{"description":"Entries of a page","items":{"$ref":"#/components/schemas/PageEntry"},"type":"array"},"item":{"$ref":"#/components/schemas/ItemDetail"},"list":{"$ref":"#/components/schemas/ItemList"},"metadata":{"$ref":"#/components/schemas/PageMetadata"},"themes":{"items":{"$ref":"#/components/schemas/Theme"},"type":"array"}},"required":["entries"],"type":"object"}]},"PageEntry":{"additionalProperties":false,"description":"Represents an entry of a Page.\nDefines what specific piece of content should be presented e.g. an Item or ItemList.\nAlso defines what visual template should be used to render that content.\n","properties":{"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for a page entry.","type":"object"},"id":{"description":"The unique identifier for a page entry.","type":"string"},"images":{"additionalProperties":{"format":"uri","type":"string"},"description":"The images for the page entry if any.\n\nFor example the images of an `ImageEntry`.\n","type":"object"},"item":{"$ref":"#/components/schemas/ItemSummary"},"list":{"$ref":"#/components/schemas/ItemList"},"people":{"description":"If 'type' is 'PeopleEntry' then this is the array of people to present.","items":{"$ref":"#/components/schemas/Person"},"type":"array"},"template":{"description":"Template type used to present the content of the PageEntry.","type":"string"},"text":{"description":"If 'type' is 'TextEntry' then this is the text to be represented.","type":"string"},"title":{"description":"The name of the Page Entry.","type":"string"},"type":{"description":"The type of PageEntry. Used to help identify what type of content will be presented.","enum":["ItemEntry","ItemDetailEntry","ListEntry","ListDetailEntry","UserEntry","TextEntry","ImageEntry","CustomEntry","PeopleEntry"],"type":"string","x-enumEmoji":{"CustomEntry":"⚙️","ImageEntry":"🌅","ItemDetailEntry":"📘","ItemEntry":"📘","ListDetailEntry":"📚","ListEntry":"📚","PeopleEntry":"👱","TextEntry":"📝","UserEntry":"👤"}}},"required":["id","type","title","template"],"type":"object","x-emoji":"📑"},"PageMetadata":{"additionalProperties":false,"description":"Metadata associated with a page. Primarily intended for SEO usage.","properties":{"description":{"type":"string"},"keywords":{"items":{"type":"string"},"type":"array"},"segments":{"items":{"type":"string"},"type":"array"}},"type":"object"},"PageSummary":{"properties":{"id":{"description":"Unique identifier for the page.","type":"string"},"isStatic":{"description":"True if this page is static and doesn't have any dynamic content to load.\n\nStatic pages don't need to go back to the page endpoint to load page content\ninstead the page summary loaded with the sitemap should be enough to determine\nthe page template type and render based on this.\n","type":"boolean"},"isSystemPage":{"description":"True if this page is a system page type.\n\n**DEPRECATED** This property doesn't have any real use in client applications\nanymore so shouldn't be used. It especially shouldn't be used to determine if\na page is static or not. Use the `isStatic` property instead.\n","type":"boolean","x-deprecated":"Replaced with isStatic"},"key":{"description":"Key used to lookup a known page.","type":"string"},"path":{"description":"Unique path for the page.","type":"string"},"template":{"description":"Identifier for of the page template to render this page.","type":"string"},"title":{"description":"Title of the page.","type":"string"}},"required":["id","path","title","template","isStatic","isSystemPage"],"type":"object","x-emoji":"📃"},"Pagination":{"additionalProperties":false,"properties":{"authorization":{"$ref":"#/components/schemas/PaginationAuth"},"next":{"description":"Path to load next page of data, or null if not available","type":"string"},"options":{"$ref":"#/components/schemas/PaginationOptions"},"page":{"description":"The current page number.\n\nA value of 0 indicates that the fist page has not yet been loaded. This is\nuseful when wanting to return the paging metadata to indicate how to\nload in the first page.\n","format":"int32","minimum":0,"type":"integer"},"previous":{"description":"Path to load previous page of data, or null if not available.","type":"string"},"size":{"description":"The current page size.\n\nA value of -1 indicates that the size has not yet been determined. This may\narise when embedding secure list pagination info in a page which must be cached\nby a CDN. For example a Bookmarks list.\n","format":"int32","minimum":-1,"type":"integer"},"total":{"description":"The total number of pages available given the current page size.\n\nA value of -1 indicates that the total has not yet been determined. This may\narise when embedding secure list pagination info in a page which must be cached\nby a CDN. For example a Bookmarks list.\n","format":"int32","minimum":-1,"type":"integer"}},"required":["total","page"],"type":"object"},"PaginationAuth":{"properties":{"scope":{"description":"The token scope required.","enum":["Catalog","Commerce","Settings"],"type":"string"},"type":{"description":"The token type required to load the list.","enum":["UserAccount","UserProfile"],"type":"string"}},"required":["type","scope"],"type":"object"},"PaginationOptions":{"additionalProperties":false,"properties":{"completed":{"description":"Items filtered by whether they've been fully watched or not.\n\nOnly available on the `/account/profile/watched/list` endpoint currently.\n","type":"boolean"},"itemType":{"description":"Specific item type filter.","enum":["movie","show","season","episode","program","link","trailer","channel","customAsset"],"type":"string","x-enumEmoji":{"channel":"📺","episode":"📺","link":"🔗","movie":"🎬","program":"🎟","season":"📺","show":"📺","trailer":"🖥"}},"maxRating":{"description":"The maximum rating (inclusive) of items returned, e.g. 'AUOFLC-PG'.","type":"string"},"order":{"description":"The applied sort order if any.","enum":["asc","desc"],"type":"string"},"orderBy":{"description":"The applied sort ordering property if any.","enum":["a-z","release-year","date-added"],"type":"string"},"pageSize":{"description":"The number of items to return in a list page.","format":"int32","type":"integer"}},"type":"object"},"PasswordResetEmailRequest":{"additionalProperties":false,"properties":{"email":{"description":"The email address of the primary account profile to reset the password for.","type":"string"}},"required":["email"],"type":"object"},"PasswordResetRequest":{"additionalProperties":false,"properties":{"password":{"description":"The new password for the account.","type":"string"},"resetToken":{"description":"The ITV reset token.","type":"string"}},"required":["resetToken","password"],"type":"object"},"PaymentMethod":{"additionalProperties":false,"properties":{"balance":{"description":"The balance of the wallet if the payment method is a wallet.","format":"float","type":"number"},"brand":{"description":"The brand of the card if the payment method is a card.","enum":["Visa","MasterCard","AmericanExpress","Other"],"type":"string"},"currency":{"description":"The currency code of the wallet if the payment method is a wallet.","type":"string"},"description":{"description":"A short description of a payment method.\n\nIf the payment method is of type `Wallet` this will be \"My Wallet\"\n\nFor `Card` type payment methods the format of this description may differ\ndepending on the payment gateway in use. In the case of Stripe, this will\nbe in the format \"Visa (**** 4242, exp 08/19)\"\n","type":"string"},"expiryMonth":{"description":"The expiry month of the card if the payment method is a card.","format":"int32","type":"number"},"expiryYear":{"description":"The expiry year of the card if the payment method is a card.","format":"int32","type":"number"},"id":{"description":"The unique identifier of a payment method.","type":"string"},"lastDigits":{"description":"The last digits of the card if the payment method is a card.\nDepending on the payment gateway in use this value may be undefined.\n","format":"int32","type":"number"},"type":{"description":"The type of payment method.","enum":["Card","Wallet"],"type":"string"}},"required":["id","description","type"],"type":"object","x-emoji":"💳"},"Person":{"properties":{"name":{"description":"The name of the person.","type":"string"},"path":{"description":"The path to the person","type":"string"}},"required":["name","path"],"type":"object","x-emoji":"👱"},"Plan":{"additionalProperties":false,"properties":{"alias":{"description":"An alias for a plan.","type":"string"},"benefits":{"description":"The list of benefits to display for a plan.","items":{"type":"string"},"type":"array"},"billingPeriodFrequency":{"description":"Given the `billingPeriodType` this is how frequently it will run. e.g. every 2 weeks.","format":"int32","type":"integer"},"billingPeriodType":{"description":"The type of billing period used.","enum":["day","week","month","year","none"],"type":"string"},"currency":{"description":"The currency a plan is offered in.","type":"string"},"customFields":{"additionalProperties":true,"description":"A map of custom fields defined by a curator for a plan.","type":"object"},"hasTrialPeriod":{"description":"True if a plan has a trial period, false if not.","type":"boolean"},"id":{"description":"The identifier of a plan.","type":"string"},"isActive":{"description":"True if a plan is active, false if its retired.","type":"boolean"},"isFeatured":{"description":"True if a plan should be highlighted as featured, false if not.","type":"boolean"},"isPrivate":{"description":"True if a plan should not be presented in the primary plan options, false if not.","type":"boolean"},"price":{"description":"The price of a plan. If a free plan then undefined.","format":"float","type":"number"},"revenueType":{"description":"The revenue type a plan targets.","enum":["TVOD","SVOD"],"type":"string"},"subscriptionCode":{"description":"The subscription code a plan targets.","type":"string"},"tagline":{"description":"The short tagline for a plan.","type":"string"},"termsAndConditions":{"description":"The terms and conditions for a plan.","type":"string"},"title":{"description":"The title of a plan.","type":"string"},"trialPeriodDays":{"description":"How many days a trial period runs for a plan. Only valid if `hasTrialPeriod` is true.","format":"int32","type":"integer"},"type":{"description":"The type of plan.","enum":["Free","Subscription"],"type":"string"}},"required":["id","title","tagline","type","isFeatured","isActive","isPrivate","revenueType","subscriptionCode","alias","benefits","billingPeriodType","billingPeriodFrequency","hasTrialPeriod","trialPeriodDays","termsAndConditions","currency"],"type":"object","x-emoji":"💳"},"PlanPurchase":{"additionalProperties":false,"properties":{"id":{"description":"The identifier of the purchased plan.","type":"string"},"price":{"description":"The price of the purchased plan.","format":"float","type":"number"},"subscriptionId":{"description":"The identifier of the subscription membership to the plan.","type":"string"},"title":{"description":"The title of the purchased plan.","type":"string"},"type":{"description":"The type of plan purchased.","enum":["Free","Subscription"],"type":"string"}},"required":["title","type"],"type":"object","x-emoji":"💰"},"ProfileCreationRequest":{"additionalProperties":false,"properties":{"languageCode":{"description":"The code of the preferred language for the profile.\nMust be a valid ISO language code e.g. \"en-US\" and must match the code of\none of the languages specified in the app config.\nSee https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n","type":"string"},"name":{"description":"The unique name of the profile.","minLength":1,"type":"string"},"pinEnabled":{"default":false,"description":"Whether an account pin is required to enter the profile.\n\nIf no account pin is defined this has no impact.\n","type":"boolean"},"purchaseEnabled":{"default":true,"description":"Whether the profile can make purchases with the account payment options.","type":"boolean"},"segments":{"description":"The segments a profile should be placed under","items":{"type":"string"},"type":"array"}},"required":["name"],"type":"object"},"ProfileDetail":{"allOf":[{"$ref":"#/components/schemas/ProfileSummary"},{"properties":{"bookmarked":{"additionalProperties":{"format":"date-time","type":"string"},"description":"A map of bookmarked itemIds => created date","type":"object"},"rated":{"additionalProperties":{"format":"int32","type":"integer"},"description":"A map of rated itemIds => rating out of 10","type":"object"},"watched":{"additionalProperties":{"$ref":"#/components/schemas/Watched"},"description":"A map of watched itemIds => last watched position","type":"object"}},"required":["watched","rated","bookmarked"],"type":"object"}]},"ProfileSummary":{"properties":{"color":{"description":"Hex color value assigned to the profile.","type":"string"},"heroAutoplay":{"description":"Gets the Hero row clip auto playback enabled","type":"boolean"},"heroWithAudio":{"description":"Gets the Hero row clip auto playback audio enabled","type":"boolean"},"id":{"description":"The id of the profile.","type":"string"},"isActive":{"description":"Whether the profile is active or not.\n\n**DEPRECATED** - Always true. Inactive profiles are no longer returned.\n","type":"boolean","x-deprecated":"Inactive profiles are no longer returned"},"languageCode":{"description":"The code of the preferred language for the profile.\nMust be a valid ISO language code e.g. \"en-US\" and must match the code of\none of the languages specified in the app config.\nSee https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n","type":"string"},"marketingEnabled":{"description":"Whether the profile has opted in or out of marketing material.\n\n**DEPRECATED** - Marketing material is no longer tied to profiles, only account. See `Account.marketingEnabled`.\n","type":"boolean","x-deprecated":"Has moved to Account.marketingEnabled"},"maxRatingContentFilter":{"$ref":"#/components/schemas/ClassificationSummary"},"minRatingPlaybackGuard":{"$ref":"#/components/schemas/ClassificationSummary"},"name":{"description":"The unique name of the profile.","type":"string"},"pinEnabled":{"description":"Whether a pin is required to enter the profile.","type":"boolean"},"purchaseEnabled":{"description":"Whether the profile can make purchases with the account payment options.","type":"boolean"},"segments":{"description":"The segments a profile has been placed under","items":{"type":"string"},"type":"array"}},"required":["id","name","isActive","pinEnabled","purchaseEnabled","marketingEnabled","segments"],"type":"object","x-emoji":"👥"},"ProfileTokenRequest":{"additionalProperties":false,"properties":{"cookieType":{"description":"If you specify a cookie type then a content filter cookie will be returned\nalong with the token(s). This is only intended for web based clients which\nneed to pass the cookies to a server to render a page based on the user's\ncontent filters e.g subscription code.\n\nIf type `Session` the cookie will be session based.\nIf type `Persistent` the cookie will have a medium term lifespan.\nIf undefined no cookies will be set.\n","enum":["Session","Persistent"],"type":"string"},"pin":{"description":"The pin associated with this profile, if any.","type":"string"},"profileId":{"description":"The id of the profile the token should grant access rights to.","type":"string"},"scopes":{"description":"The scope(s) of the token(s) required.","items":{"enum":["Catalog","Commerce","Settings"],"type":"string"},"type":"array"}},"required":["profileId","scopes"],"type":"object"},"ProfileUpdateRequest":{"additionalProperties":false,"properties":{"heroAutoplay":{"description":"Sets the Hero row clip auto playback enabled","type":"boolean"},"heroWithAudio":{"description":"Sets the Hero row clip auto playback audio enabled","type":"boolean"},"languageCode":{"description":"The code of the preferred language for the profile.\nMust be a valid ISO language code e.g. \"en-US\" and must match the code of\none of the languages specified in the app config.\nSee https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n","type":"string"},"name":{"description":"The unique name of the profile.","minLength":1,"type":"string"},"pinEnabled":{"description":"Whether an account pin is required to enter the profile.\n\nIf no account pin is defined this has no impact.\n","type":"boolean"},"purchaseEnabled":{"description":"Whether the profile can make purchases with the account payment options.","type":"boolean"},"segments":{"description":"The segments a profile should be placed under","items":{"type":"string"},"type":"array"}},"type":"object"},"Purchase":{"additionalProperties":false,"properties":{"authorizationDate":{"description":"The date the purchase was authorized.","format":"date-time","type":"string"},"creationDate":{"description":"The date the purchase was created.","format":"date-time","type":"string"},"currency":{"description":"The currency code used to make the purchase.","type":"string"},"id":{"description":"The identifier of the purchase.","type":"string"},"item":{"$ref":"#/components/schemas/ItemPurchase"},"paymentMethodId":{"description":"The identifier of the payment method used to make the purchase.","type":"string"},"plan":{"$ref":"#/components/schemas/PlanPurchase"},"total":{"description":"The total cost of the purchase.","format":"float","type":"number"}},"required":["creationDate","currency","id","total"],"type":"object","x-emoji":"💰"},"PurchaseRequest":{"additionalProperties":false,"properties":{"itemId":{"description":"The identifier of the item to purchase.\nBoth `itemId` and `offerId` are required for item purchases.\n","type":"string"},"offerId":{"description":"The identifier of the item offer to purchase.\nBoth `itemId` and `offerId` are required for item purchases.\n","type":"string"},"paymentMethodId":{"description":"The identifier of the payment method to use.\nIf omitted, or if purchasing a plan, the default payment method will be used.\n","type":"string"},"planId":{"description":"The identifier of the plan to purchase.","type":"string"}},"type":"object"},"RegistrationRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"languageCode":{"description":"The code of the preferred language for the primary profile.\nMust be a valid ISO language code e.g. \"en-US\" and must match the code of\none of the languages specified in the app config.\nSee https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n","type":"string"},"lastName":{"type":"string"},"marketing":{"default":true,"description":"Whether to receive marketing material or not. Default to true.","type":"boolean"},"password":{"type":"string"},"pin":{"description":"The primary account pin.","type":"string"},"segments":{"description":"The segments to apply to the primary profile.","items":{"type":"string"},"type":"array"}},"required":["email","password"],"type":"object"},"RokuPlanListItem":{"additionalProperties":false,"properties":{"amount":{"description":"The price of a plan. If a free plan then undefined.","format":"float","type":"number"},"currency":{"description":"The currency a plan is offered in.","type":"string"},"description":{"description":"The textual description.","type":"string"},"interval":{"description":"The type of billing period used.","enum":["day","week","month","year","none"],"type":"string"},"intervalCount":{"description":"Given the `interval` this is how frequently it will run. e.g. every 2 weeks.","format":"int32","type":"integer"},"nickname":{"description":"The title of a plan.","type":"string"},"product":{"description":"The product of a plan.","type":"string"},"productCode":{"description":"The identifier of a plan.","type":"string"},"savingLabel":{"description":"NA.","type":"string"},"trialPeriodDays":{"description":"How many days a trial period runs for a plan. Only valid if `hasTrialPeriod` is true.","format":"int32","type":"integer"}},"required":["productCode","nickname","product","currency","amount","interval","intervalCount","trialPeriodDays","description","savingLabel"],"type":"object"},"RokuPlans":{"additionalProperties":false,"properties":{"plans":{"description":"The list of available plans.","items":{"$ref":"#/components/schemas/RokuPlanListItem"},"type":"array"},"termsAndConditions":{"description":"Details of terms and conditions of the plan.","type":"string"}},"required":["plans","termsAndConditions"],"type":"object"},"SamsungPreview":{"additionalProperties":false,"properties":{"expires":{"description":"For public preview only\nIf specified, the time at which the preview content is updated.\nThe time is at most 1 week into the future. By default, the preview\ncontent is updated every 10 minutes, whenever the TV is switched on,\nor the JSON file changes.\n","format":"int64","type":"integer"},"expires_only":{"default":false,"description":"For public preview only\nIf this value is \"true\", the preview content is updated only at\nthe time specified by the \"expires\" parameter.\n","type":"boolean"},"sections":{"description":"Preview sections","items":{"$ref":"#/components/schemas/SamsungPreviewSection"},"type":"array"}},"required":["sections"],"type":"object"},"SamsungPreviewSection":{"additionalProperties":false,"properties":{"position":{"description":"Section position. If specified, sections are shown in ascending position order.","format":"int32","type":"integer"},"tiles":{"description":"Tiles within the section","items":{"$ref":"#/components/schemas/SamsungPreviewSectionTile"},"type":"array"},"title":{"description":"Section title","type":"string"}},"required":["tiles"],"type":"object"},"SamsungPreviewSectionTile":{"additionalProperties":false,"properties":{"action_data":{"description":"Data to send to the application when the tile is clicked","type":"string"},"display_from":{"description":"Time to begin showing the tile","format":"date-time","type":"string"},"display_until":{"description":"Time to stop showing the tile","format":"date-time","type":"string"},"image_ratio":{"description":"Thumbnail image aspect ratio\n  \"16:9\"\n  \"4:3\"\n  \"1:1\" (default)\n  \"2:3\"\n  The thumbnail height is fixed at 250 px on presentation.\n","type":"string"},"image_url":{"description":"Thumbnail image URL","format":"uri","type":"string"},"is_playable":{"description":"If \"true\", a \"Play\" icon is shown over the thumbnail image","type":"boolean"},"position":{"description":"Section position. If specified, sections are shown in ascending position order","format":"int32","type":"integer"},"subtitle":{"description":"Tile subtitle","type":"string"},"title":{"description":"Tile title","type":"string"}},"required":["image_url","image_ratio","action_data","is_playable"],"type":"object"},"SearchResults":{"additionalProperties":false,"properties":{"items":{"$ref":"#/components/schemas/ItemList"},"movies":{"$ref":"#/components/schemas/ItemList"},"other":{"$ref":"#/components/schemas/ItemList"},"people":{"description":"The list of people relevant to the search term.","items":{"$ref":"#/components/schemas/Person"},"type":"array"},"term":{"description":"The search term.","type":"string"},"total":{"description":"The total number of results.","format":"int32","minimum":0,"type":"integer"},"tv":{"$ref":"#/components/schemas/ItemList"}},"required":["term","total"],"type":"object","x-emoji":"🔍"},"ServiceError":{"additionalProperties":false,"properties":{"code":{"description":"An optional code classifying the error. Should be taken in the context of the http status code.","format":"int32","type":"integer"},"message":{"description":"A description of the error.","type":"string"}},"required":["message"],"type":"object","x-emoji":"🔴"},"SingleSignOnRequest":{"additionalProperties":false,"properties":{"cookieType":{"description":"If you specify a cookie type then a content filter cookie will be returned\nalong with the token(s). This is only intended for web based clients which\nneed to pass the cookies to a server to render a page based on the user's\ncontent filters e.g subscription code.\n\nIf type `Session` the cookie will be session based.\nIf type `Persistent` the cookie will have a medium term lifespan.\nIf undefined no cookies will be set.\n","enum":["Session","Persistent"],"type":"string"},"linkAccounts":{"description":"When a user attempts to sign in using single-sign-on, we may find an account created\npreviously through the manual sign up flow with the same email. If this is the\ncase then an option to link the two accounts can be made available.\n\nIf this flag is set to true then accounts will be linked automatically.\n\nIf this flag is not set or set to false and an existing account is found \nthen an http 401 with subcode `6001` will be returned. Client apps can then present the\noption to link the accounts. If the user decides to accept, then the same call\ncan be repeated with this flag set to true.\n","type":"boolean"},"provider":{"description":"The third party single-sign-on provider.","enum":["Facebook"],"type":"string"},"scopes":{"description":"The scope(s) of the tokens required.\nFor each scope listed an Account and Profile token of that scope will be returned.\n","items":{"enum":["Catalog","Commerce","Settings","Playback"],"type":"string"},"type":"array"},"token":{"description":"A token from the third party single-sign-on provider e.g. an identity token from Facebook.","type":"string"}},"required":["provider","token"],"type":"object"},"Subscription":{"additionalProperties":false,"properties":{"code":{"description":"The unique subscription code.","type":"string"},"endDate":{"description":"The end date of a subscription.\n\nAfter this date the subscription will become expired. If this is a recurring\nsubscription which has not been cancelled then the account holder will be\nautomatically charged and a new subscription will be activated.\n\nSome subscriptions may not have an end date, in which case this\nproperty will not exist.\n","format":"date-time","type":"string"},"id":{"description":"Unique identifier for the subscription.","type":"string"},"isTrialPeriod":{"description":"True if a subscription is in its trial period, false if not.","type":"boolean"},"planId":{"description":"The plan a subscription belongs to.","type":"string"},"startDate":{"description":"The start date of a subscription.","format":"date-time","type":"string"},"status":{"description":"The status of a subscription.","enum":["Active","Cancelled","Lapsed","Expired","None"],"type":"string"}},"required":["code","startDate","isTrialPeriod","planId","status"],"type":"object","x-emoji":"💳"},"SubscriptionDetails":{"additionalProperties":false,"properties":{"itvData_purchased":{"description":"The ITV purchased subscription data.","type":"object"}},"required":["itvData_purchased"],"type":"object","x-emoji":"🔑"},"Theme":{"additionalProperties":false,"properties":{"colors":{"description":"The list of colors defined for the theme.","items":{"$ref":"#/components/schemas/ThemeColor"},"type":"array"},"type":{"description":"The type of theme.","enum":["Background","Text","Custom"],"type":"string"}},"required":["colors","type"],"type":"object","x-emoji":"🎨"},"ThemeColor":{"additionalProperties":false,"properties":{"name":{"description":"The name of the theme color.","type":"string"},"opacity":{"description":"The opacity of the theme color from 0 to 1.\n\nWhen omitted, no opacity level is to be applied to the color, or in other words we\nassume the color has an opacity of 1\n","format":"float","maximum":1,"minimum":0,"type":"number"},"value":{"description":"The hex value of the theme color.","type":"string"}},"required":["name","value"],"type":"object","x-emoji":"🎨"},"TokenRefreshRequest":{"additionalProperties":false,"properties":{"cookieType":{"description":"If you specify a cookie type then a content filter cookie will be returned\nalong with the token(s). This is only intended for web based clients which\nneed to pass the cookies to a server to render a page based on the user's\ncontent filters e.g subscription code.\n\nIf type `Session` the cookie will be session based.\nIf type `Persistent` the cookie will have a medium term lifespan.\nIf undefined no cookies will be set.\n","enum":["Session","Persistent"],"type":"string"},"token":{"description":"The token to refresh.","type":"string"}},"required":["token"],"type":"object"},"UserRating":{"additionalProperties":false,"properties":{"itemId":{"description":"The id of the item rated.","type":"string"},"rating":{"description":"The rating out of 10","format":"int32","maximum":10,"minimum":1,"type":"integer"}},"required":["itemId","rating"],"type":"object","x-emoji":"⭐️"},"Watched":{"additionalProperties":false,"properties":{"firstWatchedDate":{"format":"date-time","type":"string"},"isFullyWatched":{"default":false,"description":"True - if the item is fully watched, False - otherwise.","type":"boolean"},"itemId":{"description":"The id of the item watched.","type":"string"},"lastWatchedDate":{"format":"date-time","type":"string"},"position":{"description":"The last playhead position watched for the item.","format":"int32","type":"integer"}},"required":["position","firstWatchedDate","lastWatchedDate"],"type":"object","x-emoji":"👀"}},"securitySchemes":{"accountAuth":{"description":"Account JWT token","flows":{"password":{"scopes":{"Catalog":"Access all read only content","Commerce":"Perform account level transactions","Playback":"Allow playback of restricted content","Settings":"Modify account settings"},"tokenUrl":"/account/authorization"}},"type":"oauth2"},"profileAuth":{"description":"Profile JWT token","flows":{"password":{"scopes":{"Catalog":"Modify profile preferences and activity (bookmarks, watch list)"},"tokenUrl":"/account/profile/authorization"}},"type":"oauth2"},"resetPasswordAuth":{"in":"header","name":"authorization","type":"apiKey"},"verifyEmailAuth":{"in":"header","name":"authorization","type":"apiKey"}}}}