This repository has been archived by the owner on Oct 4, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
openapi.json
1 lines (1 loc) · 157 KB
/
openapi.json
1
{"components":{"schemas":{"Channel":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"created":{"type":"string","description":"Date and time the channel was created.","format":"date-time","readOnly":true},"id":{"type":"string","description":"External Channel ID provided at channel creation time","example":"my-channel","minLength":1,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$","readOnly":true},"ingest":{"type":"object","description":"Ingest configures inputs for the transcoder.","properties":{"slate":{"type":"object","description":"Slate configures default slating behavior.","properties":{"source_loss_url":{"type":"string","description":"Source loss URL defines the location of the TS file to play when no source is available. It must have one audio and one video stream. Either MPEG2 or H.264 can be used.","format":"uri-reference","example":"https://example.com/slate.ts"}},"additionalProperties":false},"source":{"type":"object","description":"Source provides a reference to the input media stream for this channel.","properties":{"audio_sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"language":{"type":"string","description":"RFC 5646, e.g. 'en' 'en-US'","minLength":1},"name":{"type":"string","description":"Language fiendly name, e.g. 'English', 'Spanish'","minLength":1},"selector":{"type":"string","description":"Expression for choosing an audio track in the stream for this AudioSource https://istreamplanet.atlassian.net/wiki/spaces/T/pages/847970791/Proposal+Audio+Track+Selection"}},"additionalProperties":false},"minItems":1},"captions_source":{"type":"string","description":"Closed captions source embedding. If unspecified, defaults to ATSC_A53.","enum":["ATSC_A53","SMPTE_2038"]},"id":{"type":"string","description":"Unique identifier for this source.","example":"s-examplej95ah2qab"},"self":{"type":"string","description":"Self link for the source.","format":"uri-reference","readOnly":true}},"additionalProperties":false}},"additionalProperties":false,"required":["source"]},"labels":{"type":"array","description":"Optional labels for a channel. Any included labels must be at least 1 character long, but no greater than 256 characters. The maximum number of labels is 10.","items":{"type":"string"},"maxItems":10},"modified":{"type":"string","description":"Date and time the channel was last modified.","format":"date-time","readOnly":true},"name":{"type":"string","description":"A friendly human-readable name for the channel. This will get displayed in user interfaces.","example":"My Channel"},"packaging":{"type":"object","description":"Packaging configures media format and content protection settings.","properties":{"packagers":{"type":"object","description":"Defines the list of packagers available for Publications.","additionalProperties":{"type":"object","properties":{"content_protection":{"type":"object","description":"Configures how to protect packaged media segments.","properties":{"atlas":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"asset_id":{"type":"string","description":"The Asset Identifier which was taken from the token entitlement service request."},"company_id":{"type":"string","description":"The Identifier of the Company that this token belongs."},"drms":{"type":"array","description":"DRM system keys to request","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"widevine_v0_pssh_box":{"type":"boolean","description":"When TRUE the KeyID is not embedded in the pssh box which sets the version to 0. Defaults to generating v1 pssh_boxes that includes the key_id"}},"additionalProperties":false},"bulk_file":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"iv_rotation":{"type":"string","description":"How often the IV should be rotated and how it should be created","enum":["RANDOM_PER_KEY","PER_SEGMENT_NUMBER","UNIQUE_PER_SEGMENT"]}},"additionalProperties":false},"common":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"scheme_type":{"type":"string","description":"Defines the scheme that can be used with Common Encryption","enum":["CENC","CBCS"]}},"additionalProperties":false},"cpix":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"certificates_id":{"type":"string","description":"Unique ID used for certificate settings, unique per distributor."},"content_id":{"type":"string","description":"(Optional) Content ID that identifies this channel in the CPIX service. Value is defined by the DRM system owner, and if defined will be included as part of a POST request."},"credentials_id":{"type":"string","description":"Unique ID used for credentials settings, unique per distributor."},"decryption_key_id":{"type":"string","description":"Unique ID of the decryption key to use in case the server response contains content keys encrypted. The key is unique per distirutor, and configured ahead of time by the publishing team and the CPIX service owner."},"drms":{"type":"array","description":"(Optional) DRM system keys to request. If not defined a GET request will be done, and any key returned will be handled. If defined, random kid(s) (key ids) will be generated on rotation for each DRM system, and a POST request will be done to create them.","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"headers_id":{"type":"string","description":"(Optional) An identifier to a list of HTTP headers to be added to the request sent to the CPIX service."},"uri":{"type":"string","description":"CPIX service URI","format":"uri-reference"}},"additionalProperties":false},"key_rotation":{"type":"object","description":"Configures how keys should be rotated","properties":{"interval_secs":{"type":"number","description":"Rotate keys based on the specified time interval. If Program is also provided then this time interval will only apply to media segments that are outside of program boundaries. If Program is NOT provided then only this time interval will be used to decided when to rotate keys.","format":"float","minimum":300},"program":{"type":"boolean","description":"Rotate keys on (SCTE35) program boundaries such that no two programs will be protected with the same key."},"program_overlap_skip_encrypt":{"type":"boolean","description":"Do not encrypt segments that are part of more than one SCTE-35 program."}},"additionalProperties":false},"sample_aes":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","additionalProperties":false},"simple":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"publish_points":{"type":"array","description":"Pub points where keys should be published. If multiple are specified, only one needs to succeed to consider the key successfully published.","items":{"type":"object","properties":{"basic_auth":{"type":"object","description":"Only one of ['basic_auth'] may be set.","properties":{"password":{"type":"string","description":"Plain text password for basic auth."},"username":{"type":"string","description":"Username for basic auth."}},"additionalProperties":false},"compression":{"type":"string","description":"Configures whether or not (and how) to compress manifests being published to the origin. If not specified, manifests will not be compressed.","enum":["NONE","GZIP"]},"cross_playback_paths":{"type":"array","description":"Cross Playback Paths are playback paths that reference alternative content. These playback paths could reference publish points from the same publication or a completely different encoder and packager altogether. Content published to an endpoint referenced by one of these cross playback paths MUST be of the same Manifest.Type.","items":{"type":"string"}},"do_not_monitor":{"type":"boolean","description":"(Optional) Specifies if this pubpoint should not be monitored by PLM."},"headers":{"type":"object","description":"Allows custom HTTP headers to be set via configuration for all HTTP requests.","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"Method overrides what HTTP method to specify in requests to the Publish Point. If not specified the service will default to POST."},"playback_base_url":{"type":"string","description":"The base URL where published playlists will be able to be obtained. This is often different than the publish_base_url for CDN publishing workflows.","format":"uri-reference"},"playback_query_params":{"type":"string","description":"Specifies any query parameters that will be added to playback urls. Should not include the initial '?' Example: 'foo=bar\u0026q=golang'"},"publish_base_url":{"type":"string","description":"The base URL where generated playlists will be sent/published. Each publish point requires a unique 'publish_base_url'.","format":"uri-reference"}},"additionalProperties":false}},"require_publish":{"type":"string","description":"Indicates which publish points must succeed for segment publishing to use the keys.","enum":["ANY","ALL"]}},"additionalProperties":false}},"additionalProperties":false},"mp2t":{"type":"object","description":"Uses MP2T format for each segments. Only one of ['mp2t', 'mp4'] may be set.","properties":{"force_unmuxed_audio":{"type":"boolean","description":"Forces the Video and Audio Encodings to be unmuxed when there is one audio encodings. This setting will have to be uniformed across MP2T packagers within a config. When there are two or more audio encodings, unmuxed will be used automatically."},"insert_id3_utc_time":{"type":"boolean","description":"If true, insert ID3 tags that include a UTC timestamp. This is a Turner/WM-specific extension."}},"additionalProperties":false},"mp4":{"type":"object","description":"Uses MP4 format for each segments. Only one of ['mp2t', 'mp4'] may be set.","properties":{"caption_placement":{"type":"string","description":"CaptionPlacement defines where caption messages should be placed in the output MP4.","enum":["SEI_PAYLOAD","CLCP_TRACK"]},"insert_pssh_box":{"type":"boolean","description":"Insert pssh boxes generated by content protection into packaged segments. Defaults to not insert pssh boxes to the packaged segments."}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false},"publishing":{"type":"object","description":"Publishing configures playlist formats and where to send video and playlist data.","properties":{"closed_caption_streams":{"type":"array","description":"Configures how captioning information is published.","items":{"type":"object","properties":{"auto_select":{"type":"string","description":"Indicates that the client should play the captioning media selection group if the user has not indicated a user preference. If both auto_select and default are not set, the first captioning media selection group will be used.","enum":["NO","YES"]},"default":{"type":"string","description":"Configures the captioning media selection group that will be played if the user has not indicated a user preference. If both auto_select and default are not set, the first captioning media selection group will be used.","enum":["NO","YES"]},"language":{"type":"string","description":"Language code as RFC 5646, e.g. 'en' 'en-US'."},"name":{"type":"string","description":"Source stream name."}},"additionalProperties":false}},"feature_flags":{"type":"array","description":"Set of string identifiers corresponding to features that this Channel is opting in.","items":{"type":"string"}},"live2vod":{"type":"object","description":"Live2VOD configuration used to archive the channel data, this allows clip creation after the content is no longer live.","properties":{"product_id":{"type":"string","description":"Product ID that VODs will be associated with in the Live2VOD system. The value of this ID is pre-configured in the Live2VOD portal.","minLength":1},"retention_days":{"type":"integer","description":"Specifies the retention time, in days, for archived content.","format":"int32","minimum":1,"maximum":30}},"additionalProperties":false},"publications":{"type":"array","description":"A set of individual configurations that each can configure a specific destination and mechanism of delivery for segments and/or playlists.","items":{"type":"object","properties":{"audio_encoder_ids":{"type":"array","description":"Optionally specify which audio encoders should be used for this publication. If none are specified, all audio encoders configured for the transcoder will be used.","items":{"type":"string"},"uniqueItems":true},"create_vods":{"type":"boolean","description":"Create VODs for all publish points in this publication. Note that Live2VOD must also be configured for the parent |Channel|."},"dash":{"type":"object","description":"DASH configures publication settings. Only one of HLS or DASH can be set.","properties":{"minimum_update_period_secs":{"type":"integer","description":"Sets the minimumUpdatePeriod field in MPD to be this value. If set to 0 (default), segment duration is used. The value shall not exceed the 'suggested_presentation_delay_secs'.","format":"int32"},"signaling_formats":{"type":"array","description":"Signaling formats specifies which SCTE-35 timeline marker formatting to use when rendering playlists.","items":{"type":"string","enum":["SCTE35_BIN_DFP","SCTE35_SPLICE_INFO_SECTION","SCTE35_BIN","SCTE35_SPLICE_INFO_SECTION_WITH_PRESENTATION_TIME","SCTE35_BIN_WITH_PRESENTATION_TIME"]},"uniqueItems":true},"suggested_presentation_delay_secs":{"type":"integer","description":"The suggested amount of time (in seconds) the player should be behind the live stream. This value must be greater or equal to 'minimum_update_period_secs'.","format":"int32","minimum":0},"url_type":{"type":"string","description":"If set to 'URL_TYPE_UNDEFINED' playlist generation will use 'RELATIVE'.","enum":["RELATIVE","ABSOLUTE","HOST_RELATIVE"]}},"additionalProperties":false},"drms":{"type":"array","description":"Optionally specify which DRMs to advertise in the playlist. If specified, this must be a subset of the DRMs specified by the packager associated with this publication. If omitted or empty, all DRMs specified by the packager will be advertised. This setting can only be used for HLS playlists.","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"dvr_window_secs":{"type":"integer","description":"DVR window is the max sum(duration of media segments) that will be kept in a manifest at a given time in seconds. The max supported DVR window is 10 hours.","format":"int32","minimum":0,"exclusiveMinimum":true,"maximum":36000},"hls":{"type":"object","description":"HLS configures publication settings. Only one of HLS or DASH can be set.","properties":{"audio_only_variants":{"type":"string","description":"Defines how audio only variant streams are included in the master playlist, where the variant streams are defined by #EXT-X-STREAM-INF tag, the tag attributes provide information about the Stream. If NOT_SET - honor the deprecated 'exclude_audio_only' flag. Later when the deprecated flag is removed, the NOT_SET would mean INCLUDE_DEFAULT The INCLUDE_DEFAULT option - only the default 'audio only variant stream' is included in master playlist. This is the most common use case. INCLUDE_NONE - no audio only variant streams are included in the master playlist, it replaces 'exclude_audio_only' setting. INCLUDE_ALL - include all audio only variant streams in the master playlist.","enum":["INCLUDE_DEFAULT","INCLUDE_NONE","INCLUDE_ALL"]},"gap_tags":{"type":"string","description":"Allows turning gap tags ON/OFF. When turned ON - the tag '#EXT-X-GAP' is inserted into media playlist for a missing segment. When turned OFF - Discontinuity is inserted into the playlist for missing segment(s). The default option UNDEFINED is mapped to OFF. Note: Gap tags are always inserted for the missing thumbnail segments independently of this setting","enum":["ON","OFF"]},"master_publish_frequency_secs":{"type":"integer","description":"How often the master playlist(s) should be published in seconds. A value of 0 means the master playlist will only be published once at channel start.","format":"int32"},"master_url_type":{"type":"string","description":"Allows specifying url type for HLS master playlists. If not provided, playlist generation will use 'RELATIVE'.","enum":["RELATIVE","ABSOLUTE","HOST_RELATIVE"]},"media_url_type":{"type":"string","description":"Allows specifying url type for HLS media playlists. If not provided, playlist generation will use 'RELATIVE'.","enum":["RELATIVE","ABSOLUTE","HOST_RELATIVE"]},"partial_presentations":{"type":"array","description":"Specify which partial presentations should be used for this presentation. Partial presentations are additional master playlists that point to a subset of the parent presentation's media streams/variant playlists.","items":{"type":"object","properties":{"audio_encoder_ids":{"type":"array","description":"Specify which audio encoders should be used for this presentation. If none are specified, all audio encoders configured for the parent Publication will be used.","items":{"type":"string"},"uniqueItems":true},"iframe_only_encoder_ids":{"type":"array","description":"List of video encoder IDs that should have I-Frame only playlists generated for them.","items":{"type":"string"},"uniqueItems":true},"playlist_path":{"type":"string","description":"Sub-path that will be appended onto the publish and playback base URLs of HTTP PublishPoints for published playlist files.","minLength":1},"thumbnail_encoder_ids":{"type":"array","description":"Specify which thumbnail encoders should be used for this presentation. If none are specified, all thumbnail encoders configured for the parent Publication will be used.","items":{"type":"string"},"uniqueItems":true},"video_encoder_ids":{"type":"array","description":"Specify which video encoders should be used for this presentation. If none are specified, all video encoders configured for the parent Publication will be used.","items":{"type":"string"},"uniqueItems":true}},"additionalProperties":false}},"pdt_on_every_segment":{"type":"boolean","description":"When true a #EXT-X-PROGRAM-DATE-TIME tag will be placed on every media segment in media playlists. When false, the default behavior, the PDT tag is set according to the HLS specification."},"signaling_formats":{"type":"array","description":"Signaling formats specifies which SCTE-35 timeline marker formatting to use when rendering playlists.","items":{"type":"string","enum":["MDIALOG","FREEWHEEL","ADOBE_SIMPLE","ADOBE_SCTE35","APPLE_SCTE35","AD_SIMPLE","SCTE35","SCTE35_2019","SCTE35_2019_EVERY_SEGMENT"]},"uniqueItems":true},"utc_in_segment_title":{"type":"boolean","description":"Include a UTC timestamp (that is equivalent in value to #EXT-X-PROGRAM-DATE-TIME) in the title of each media segment in media playlists. Ex. #EXTINF:6.006,LTC=2020-01-01T12:00:00.000Z"}},"additionalProperties":false},"iframe_only_encoder_ids":{"type":"array","description":"List of video encoder IDs that should have I-Frame only playlists generated for them.","items":{"type":"string"},"uniqueItems":true},"master_playlist_name":{"type":"string","description":"Optional master manifest name. When not supplied a default of 'master' will be used."},"packager_id":{"type":"string","description":"Determines how segments in this publication are packaged. Must reference a packager in 'packaging.packagers'. However, if this is a playlist-only publication (i.e. contains publish points that specify 'playlist_only_for'), this must remain unset as the packager will be inferred from the publication this one is providing playlists for."},"publish_points":{"type":"array","description":"Publish points specify where to output.","items":{"type":"object","properties":{"http":{"type":"object","description":"HTTP destination where media segments and playlists will be published.","properties":{"basic_auth":{"type":"object","description":"Only one of ['basic_auth'] may be set.","properties":{"password":{"type":"string","description":"Plain text password for basic auth."},"username":{"type":"string","description":"Username for basic auth."}},"additionalProperties":false},"compression":{"type":"string","description":"Configures whether or not (and how) to compress manifests being published to the origin. If not specified, manifests will not be compressed.","enum":["NONE","GZIP"]},"cross_playback_paths":{"type":"array","description":"Cross Playback Paths are playback paths that reference alternative content. These playback paths could reference publish points from the same publication or a completely different encoder and packager altogether. Content published to an endpoint referenced by one of these cross playback paths MUST be of the same Manifest.Type.","items":{"type":"string"}},"do_not_monitor":{"type":"boolean","description":"(Optional) Specifies if this pubpoint should not be monitored by PLM."},"headers":{"type":"object","description":"Allows custom HTTP headers to be set via configuration for all HTTP requests.","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"Method overrides what HTTP method to specify in requests to the Publish Point. If not specified the service will default to POST."},"playback_base_url":{"type":"string","description":"The base URL where published playlists will be able to be obtained. This is often different than the publish_base_url for CDN publishing workflows.","format":"uri-reference"},"playback_query_params":{"type":"string","description":"Specifies any query parameters that will be added to playback urls. Should not include the initial '?' Example: 'foo=bar\u0026q=golang'"},"publish_base_url":{"type":"string","description":"The base URL where generated playlists will be sent/published. Each publish point requires a unique 'publish_base_url'.","format":"uri-reference"}},"additionalProperties":false},"id":{"type":"string","description":"uniquely identifies this publish_point within a channel configuration. Can be referenced by other publish_points in the 'playlist_only_for' field."},"playlist_only_for":{"type":"string","description":"playlist_only_for identifies the id of the publish_point that has the segments for this publish_point, which is only publishing a playlist for those segments. All publish_points within a publication must either have 'playlist_only_for' all set or all not set."}},"additionalProperties":false},"minItems":1},"redundant_publishing":{"type":"boolean","description":"When redundant publishing is enabled succeeding to publish a given media segment to at least one HTTPPublishPoint in publish_points will result in that segment showing up in manifests as playable content. Will require at least two publish_points defined within the same publication."},"thumbnail_encoder_ids":{"type":"array","description":"Optional: Specify what thumbnail_encoders should be in this Publication","items":{"type":"string"},"uniqueItems":true},"use_strict_bitrate":{"type":"boolean","description":"Optional, indicates whether we should pad the bitrate (false) or use what is explicitly provided (true)"},"video_encoder_ids":{"type":"array","description":"Optionally specify which video encoders should be used for this publication. If none are specified, all video encoders configured for the transcoder will be used.","items":{"type":"string"},"uniqueItems":true}},"additionalProperties":false},"minItems":1}},"additionalProperties":false},"region":{"type":"string","description":"Region represents the general geolocation for transcoding and stream egress from iStreamPlanet. If no region is provided at channel creation time, then 'US_WEST' is used.","enum":["US_WEST","US_EAST"]},"resource_class":{"type":"string","description":"If the ResourceClass is unspecified the channel will default to run in the 'DYNAMIC' ResourceClass. Note that changing the ResourceClass for a running channel is supported and will be performed with no downtime.","enum":["DYNAMIC","STATIC"]},"self":{"type":"string","description":"Self link for the channel.","format":"uri-reference","readOnly":true},"signaling":{"type":"object","description":"Signaling configures in-band signaling (i.e. SCTE-35).","properties":{"blackout_settings":{"type":"object","description":"Configure blackout: replacing content with custom slates based on program signaling.","properties":{"default_blackout_slate_url":{"type":"string","description":"Default slate URL to use for blackouts. Can be overridden by the 'slates' field.","format":"uri-reference","example":"https://example.com/blackout.ts"},"force_blackout_segments":{"type":"array","description":"List of signaling segment types to force blackout, e.g. add 'SPLICE_INSERT' to blackout all ads signaled via SCTE-35 splice_insert.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]}},"honor_web_delivery_restriction":{"type":"boolean","description":"Determines whether to honor the web_delivery_allowed attribute in SCTE-35 segmentation descriptors. When this is enabled, a segmentation descriptor with web_delivery_allowed=false will trigger a blackout."},"slates":{"type":"array","description":"Per-segment type slate overrides.","items":{"type":"object","properties":{"blackout_slate_url":{"type":"string","description":"Blackout slate URL to use for the specified segments. It must have one audio and one video stream. Either MPEG2 or H.264 can be used.","format":"uri-reference","example":"https://example.com/blackout.ts"},"segments":{"type":"array","description":"Segment types that shall utilize the blackout slate URL. Any segment type defined here _must_ also be present in the parent signaling configuration.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]}},"upids":{"type":"array","description":"Exclusive list of hex string encoded colon separated UPID Type:ID pairs (e.g. '0A:1A2B3C4D') to enable this blackout slate on.","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"disable_inband_parsing":{"type":"boolean","description":"Disable parsing SCTE-35 in-band signaling. Out-of-band signaling is still allowed."},"segment_settings":{"type":"array","description":"Settings that apply to specific segments.","items":{"type":"object","properties":{"default_duration_secs":{"type":"integer","description":"Specifies the duration of a segment when the in-band SCTE-35 that initiates it (e.g. Distributor Placement Opportunity Start) is missing an explicit duration. N.B. for program and ad types, this also affects 'Simple Program' and 'Simple Ad' markers, respectively.","format":"int32","minimum":0,"maximum":172800},"emit_default_duration":{"type":"boolean","description":"Determines whether to include the default duration in the output SCTE-35 messages when the input SCTE-35 message did not specify a duration."},"offset_millis":{"type":"integer","description":"Specifies a 'correction' to the splice_time of in-band SCTE-35 in milliseconds.","format":"int32","minimum":-4000,"maximum":4000},"segment_end_mode":{"type":"string","description":"Determines which Segment End signaling mode to use for the provided segments. If unspecified, defaults to MATCH_END_EVENT_ID.","enum":["MATCH_END_EVENT_ID","IGNORE_END_EVENT_ID","IGNORE_END_SIGNAL"]},"segments":{"type":"array","description":"Specifies the list of which segment types this setting applies to. Any segment type defined here _must_ also be present in the parent signaling configuration.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]},"uniqueItems":true},"tier_filter":{"type":"object","description":"Specifies how to filter the provided segments, when received through in-band SCTE-35, based on the SCTE-35 SpliceInfoSection Tier.","properties":{"explicit_tier":{"type":"object","description":"Only one of ['explicit_tier'] may be set.","properties":{"values":{"type":"array","items":{"type":"integer","format":"int32"}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"segments":{"type":"array","description":"Segment types to process for in-band signaling.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]},"uniqueItems":true}},"additionalProperties":false},"tags":{"type":"object","description":"Use ChannelMetadata when possible instead of tags.","properties":{"monitored":{"type":"boolean","description":"Indicates whether this channel is monitored by automation."}},"additionalProperties":false},"transcode":{"type":"object","description":"Transcode configures audio/video conversion settings.","properties":{"audio_encoders":{"type":"array","description":"Audio encoders specify audio conversion settings, e.g. channels, samples, codec, bitrate, etc.","items":{"type":"object","properties":{"audio_source_id":{"type":"string","description":"Audio source ID specifies which stream within the audio source to use.","minLength":1},"bit_rate":{"type":"integer","description":"Bit rate specifies the constant number of bits used per second. Higher values result in better audio quality but bigger file sizes.","format":"int32","example":128000,"minimum":0,"exclusiveMinimum":true},"channels":{"type":"integer","description":"Channels specifies the number of audio channels to encode. The available options depend on the audio codec. The encoder supports different channel configurations based on the codec; AAC 1-2 channels, AC3 supports 1-6, and EAC3 supports 1-8. For example, for AC3 5.1 one would set 6 channels. Channel configurations are as follows: 1 - Mono / Dolby 1.0 (C), 2 - Stereo / Dolby 2.0 (L, R), 3 - Dolby 3.0 (L, C, R), 4 - Dolby 4.0 (L, C, R, l), 5 - Dolby 5.0 (L, C, R, l, r), 6 - Dolby 5.1 (L, C, R, l, r, LFE), 7 - Dolby 7.0 (L, C, R, l, r, Lrs, Rrs), 8 - Dolby 7.1 (L, C, R, l, r, Lrs, Rrs, LFE).","format":"int32","example":2,"minimum":0,"exclusiveMinimum":true,"maximum":8},"codec":{"type":"string","description":"Codec specifies the audio data encoding format.","enum":["AAC_LC","AC3","EAC3"]},"id":{"type":"string","description":"Encoder ID. IDs must be unique for all audio encoders. This ID is referenced when setting up playlist publishing.","example":"aac128","minLength":1},"loudness":{"type":"object","description":"Loudness normalization settings.","properties":{"dialog_intel":{"type":"boolean","description":"Enable Dialog Intelligence. Only supported for (E)AC-3 encoders."},"lkfs":{"type":"integer","description":"Loudness normalization LKFS setting. Default value is -24.","format":"int32","minimum":-31,"maximum":-10},"lra":{"type":"number","description":"Loudness Range. Only supported for non-(E)AC-3 encoders. Default value is 7.0.","format":"float"},"peak_limit":{"type":"number","description":"Peak Limit. Default value is -2.0.","format":"float","minimum":-8,"maximum":-0.1}},"additionalProperties":false},"sample_rate":{"type":"integer","description":"Sample rate specifies the number of audio samples in hertz. The available options depend on the audio codec: AAC supports 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, and 96000. AC3/EAC3 support only 48000.","format":"int32","example":48000,"minimum":0,"exclusiveMinimum":true}},"additionalProperties":false},"minItems":1},"feature_flags":{"type":"array","description":"Feature flag strings enable experimental transcode features or functionality that are not yet or never will be promoted to the channeldoc model proper.","items":{"type":"string"}},"id3_mode":{"type":"string","description":"Specify how to process ID3 tags from the input source. If not specified, ID3 tags in the source will be ignored.","enum":["PASSTHROUGH"]},"resize_mode":{"type":"string","description":"Resize mode specifies how to scale a video up or down to match the output dimensions.","enum":["STRETCH","LETTERBOX"]},"segmenter":{"type":"object","description":"Segmenter configures how video GOPs and segments get generated.","properties":{"gop_duration_secs":{"type":"number","description":"GOP (group of pictures) duration specifies the amount of time between I-frames. Shorter durations can lower quality slightly as each I-frame uses more bits than P- \u0026 B-frames but can provide a better seeking experience when enabling thumbnail encoders and/or I-Frame Only playlists.","format":"double","example":2,"minimum":0,"exclusiveMinimum":true},"partials_mode":{"type":"string","description":"Not public because we haven't shipped low latency HLS yet and we probably need to update the naming.","enum":["GOP"]},"segment_duration_secs":{"type":"number","description":"Segment duration specifies the target duration of a single segment. Segments shorter than this duration can occur at signaling boundaries. This value _must_ be a multiple of the GOP duration value.","format":"double","example":6,"minimum":0,"exclusiveMinimum":true},"temi":{"type":"boolean","description":"Include TEMI (Timeline and External Media Information ISO/IEC 13818-1:2019 Annex U) to mpeg-ts segments."}},"additionalProperties":false},"thumbnail_encoders":{"type":"array","description":"Thumbnail encoders specify how to create image snapshots of the video stream.","items":{"type":"object","properties":{"height":{"type":"integer","description":"Height specifies the thumbnail image height in pixels.","format":"int32","example":180,"minimum":0,"exclusiveMinimum":true},"id":{"type":"string","description":"Encoder ID. IDs must be unique for all video and thumbnail encoders. This ID is referenced when setting up playlist publishing.","minLength":1},"width":{"type":"integer","description":"Width specifies the thumbnail image width in pixels.","format":"int32","example":320,"minimum":0,"exclusiveMinimum":true}},"additionalProperties":false}},"video_encoders":{"type":"array","description":"Video encoders specify video conversion settings, e.g. dimensions, codec, bitrate, etc.","items":{"type":"object","properties":{"bit_rate":{"type":"integer","description":"Bit rate specifies the number in bits used per second. Higher values result in better video quality but bigger file sizes. For H.264 this value is the target of the constrained variable bit rate.","format":"int32","example":6000000,"minimum":0,"exclusiveMinimum":true},"frame_rate":{"type":"string","description":"Frame rate specifies the number of images that are shown per second when playing back the video. For the best quality playback, this should match or be a multiple of the input source video stream.","enum":["FR_23_98","FR_24","FR_25","FR_29_97","FR_30","FR_50","FR_59_94","FR_60"],"example":"FR_60"},"h264":{"type":"object","description":"Configure the encoder to use the H.264 codec. Only one of ['H264Settings', 'H265Settings'] may be set","properties":{"profile":{"type":"string","description":"H.264 video profile, which defines various encoder features and settings. See https://en.wikipedia.org/wiki/Advanced_Video_Coding#Profiles for details.","enum":["BASELINE","MAIN","HIGH","HIGH_10","HIGH_422"]}},"additionalProperties":false},"h265":{"type":"object","description":"Configure the encoder to use the H.265 codec. Only one of ['H264Settings', 'H265Settings'] may be set","properties":{"hdr":{"type":"object","description":"Configure the HDR settings.","additionalProperties":false},"profile":{"type":"string","description":"H.265 video profile, which defines various encoder features and settings. See https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#Profiles for details.","enum":["MAIN","MAIN_10"]}},"additionalProperties":false},"height":{"type":"integer","description":"Height specifies the video height in pixels. Must be a multiple of two.","format":"int32","example":1080,"minimum":0,"exclusiveMinimum":true},"id":{"type":"string","description":"Encoder ID. IDs must be unique for all video and thumbnail encoders. This ID is referenced when setting up playlist publishing.","example":"1080p60","minLength":1},"width":{"type":"integer","description":"Width specifies the video width in pixels. Must be a multiple of two.","format":"int32","example":1920,"minimum":0,"exclusiveMinimum":true}},"additionalProperties":false},"minItems":1}},"additionalProperties":false}},"additionalProperties":false,"required":["ingest","transcode"]},"ChannelPlayback":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"cmaf":{"type":"array","description":"CMAF playback configurations","items":{"type":"object","properties":{"content_protection":{"type":"object","description":"Content Protection settings","properties":{"atlas":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"asset_id":{"type":"string","description":"The Asset Identifier which was taken from the token entitlement service request."},"company_id":{"type":"string","description":"The Identifier of the Company that this token belongs."},"drms":{"type":"array","description":"DRM system keys to request","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"widevine_v0_pssh_box":{"type":"boolean","description":"When TRUE the KeyID is not embedded in the pssh box which sets the version to 0. Defaults to generating v1 pssh_boxes that includes the key_id"}},"additionalProperties":false},"bulk_file":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"iv_rotation":{"type":"string","description":"How often the IV should be rotated and how it should be created","enum":["RANDOM_PER_KEY","PER_SEGMENT_NUMBER","UNIQUE_PER_SEGMENT"]}},"additionalProperties":false},"common":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"scheme_type":{"type":"string","description":"Defines the scheme that can be used with Common Encryption","enum":["CENC","CBCS"]}},"additionalProperties":false},"cpix":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"certificates_id":{"type":"string","description":"Unique ID used for certificate settings, unique per distributor."},"content_id":{"type":"string","description":"(Optional) Content ID that identifies this channel in the CPIX service. Value is defined by the DRM system owner, and if defined will be included as part of a POST request."},"credentials_id":{"type":"string","description":"Unique ID used for credentials settings, unique per distributor."},"decryption_key_id":{"type":"string","description":"Unique ID of the decryption key to use in case the server response contains content keys encrypted. The key is unique per distirutor, and configured ahead of time by the publishing team and the CPIX service owner."},"drms":{"type":"array","description":"(Optional) DRM system keys to request. If not defined a GET request will be done, and any key returned will be handled. If defined, random kid(s) (key ids) will be generated on rotation for each DRM system, and a POST request will be done to create them.","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"headers_id":{"type":"string","description":"(Optional) An identifier to a list of HTTP headers to be added to the request sent to the CPIX service."},"uri":{"type":"string","description":"CPIX service URI","format":"uri-reference"}},"additionalProperties":false},"key_rotation":{"type":"object","description":"Configures how keys should be rotated","properties":{"interval_secs":{"type":"number","description":"Rotate keys based on the specified time interval. If Program is also provided then this time interval will only apply to media segments that are outside of program boundaries. If Program is NOT provided then only this time interval will be used to decided when to rotate keys.","format":"float","minimum":300},"program":{"type":"boolean","description":"Rotate keys on (SCTE35) program boundaries such that no two programs will be protected with the same key."},"program_overlap_skip_encrypt":{"type":"boolean","description":"Do not encrypt segments that are part of more than one SCTE-35 program."}},"additionalProperties":false},"sample_aes":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","additionalProperties":false},"simple":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"publish_points":{"type":"array","description":"Pub points where keys should be published. If multiple are specified, only one needs to succeed to consider the key successfully published.","items":{"type":"object","properties":{"basic_auth":{"type":"object","description":"Only one of ['basic_auth'] may be set.","properties":{"password":{"type":"string","description":"Plain text password for basic auth."},"username":{"type":"string","description":"Username for basic auth."}},"additionalProperties":false},"compression":{"type":"string","description":"Configures whether or not (and how) to compress manifests being published to the origin. If not specified, manifests will not be compressed.","enum":["NONE","GZIP"]},"cross_playback_paths":{"type":"array","description":"Cross Playback Paths are playback paths that reference alternative content. These playback paths could reference publish points from the same publication or a completely different encoder and packager altogether. Content published to an endpoint referenced by one of these cross playback paths MUST be of the same Manifest.Type.","items":{"type":"string"}},"do_not_monitor":{"type":"boolean","description":"(Optional) Specifies if this pubpoint should not be monitored by PLM."},"headers":{"type":"object","description":"Allows custom HTTP headers to be set via configuration for all HTTP requests.","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"Method overrides what HTTP method to specify in requests to the Publish Point. If not specified the service will default to POST."},"playback_base_url":{"type":"string","description":"The base URL where published playlists will be able to be obtained. This is often different than the publish_base_url for CDN publishing workflows.","format":"uri-reference"},"playback_query_params":{"type":"string","description":"Specifies any query parameters that will be added to playback urls. Should not include the initial '?' Example: 'foo=bar\u0026q=golang'"},"publish_base_url":{"type":"string","description":"The base URL where generated playlists will be sent/published. Each publish point requires a unique 'publish_base_url'.","format":"uri-reference"}},"additionalProperties":false}},"require_publish":{"type":"string","description":"Indicates which publish points must succeed for segment publishing to use the keys.","enum":["ANY","ALL"]}},"additionalProperties":false}},"additionalProperties":false},"partial_presentations":{"type":"array","description":"Partial Presentation Playback URLs","items":{"type":"string"}},"url":{"type":"string","description":"Playback URL"}},"additionalProperties":false,"required":["url"]}},"dash":{"type":"array","description":"Dash playback configurations","items":{"type":"object","properties":{"content_protection":{"type":"object","description":"Content Protection settings","properties":{"atlas":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"asset_id":{"type":"string","description":"The Asset Identifier which was taken from the token entitlement service request."},"company_id":{"type":"string","description":"The Identifier of the Company that this token belongs."},"drms":{"type":"array","description":"DRM system keys to request","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"widevine_v0_pssh_box":{"type":"boolean","description":"When TRUE the KeyID is not embedded in the pssh box which sets the version to 0. Defaults to generating v1 pssh_boxes that includes the key_id"}},"additionalProperties":false},"bulk_file":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"iv_rotation":{"type":"string","description":"How often the IV should be rotated and how it should be created","enum":["RANDOM_PER_KEY","PER_SEGMENT_NUMBER","UNIQUE_PER_SEGMENT"]}},"additionalProperties":false},"common":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"scheme_type":{"type":"string","description":"Defines the scheme that can be used with Common Encryption","enum":["CENC","CBCS"]}},"additionalProperties":false},"cpix":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"certificates_id":{"type":"string","description":"Unique ID used for certificate settings, unique per distributor."},"content_id":{"type":"string","description":"(Optional) Content ID that identifies this channel in the CPIX service. Value is defined by the DRM system owner, and if defined will be included as part of a POST request."},"credentials_id":{"type":"string","description":"Unique ID used for credentials settings, unique per distributor."},"decryption_key_id":{"type":"string","description":"Unique ID of the decryption key to use in case the server response contains content keys encrypted. The key is unique per distirutor, and configured ahead of time by the publishing team and the CPIX service owner."},"drms":{"type":"array","description":"(Optional) DRM system keys to request. If not defined a GET request will be done, and any key returned will be handled. If defined, random kid(s) (key ids) will be generated on rotation for each DRM system, and a POST request will be done to create them.","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"headers_id":{"type":"string","description":"(Optional) An identifier to a list of HTTP headers to be added to the request sent to the CPIX service."},"uri":{"type":"string","description":"CPIX service URI","format":"uri-reference"}},"additionalProperties":false},"key_rotation":{"type":"object","description":"Configures how keys should be rotated","properties":{"interval_secs":{"type":"number","description":"Rotate keys based on the specified time interval. If Program is also provided then this time interval will only apply to media segments that are outside of program boundaries. If Program is NOT provided then only this time interval will be used to decided when to rotate keys.","format":"float","minimum":300},"program":{"type":"boolean","description":"Rotate keys on (SCTE35) program boundaries such that no two programs will be protected with the same key."},"program_overlap_skip_encrypt":{"type":"boolean","description":"Do not encrypt segments that are part of more than one SCTE-35 program."}},"additionalProperties":false},"sample_aes":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","additionalProperties":false},"simple":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"publish_points":{"type":"array","description":"Pub points where keys should be published. If multiple are specified, only one needs to succeed to consider the key successfully published.","items":{"type":"object","properties":{"basic_auth":{"type":"object","description":"Only one of ['basic_auth'] may be set.","properties":{"password":{"type":"string","description":"Plain text password for basic auth."},"username":{"type":"string","description":"Username for basic auth."}},"additionalProperties":false},"compression":{"type":"string","description":"Configures whether or not (and how) to compress manifests being published to the origin. If not specified, manifests will not be compressed.","enum":["NONE","GZIP"]},"cross_playback_paths":{"type":"array","description":"Cross Playback Paths are playback paths that reference alternative content. These playback paths could reference publish points from the same publication or a completely different encoder and packager altogether. Content published to an endpoint referenced by one of these cross playback paths MUST be of the same Manifest.Type.","items":{"type":"string"}},"do_not_monitor":{"type":"boolean","description":"(Optional) Specifies if this pubpoint should not be monitored by PLM."},"headers":{"type":"object","description":"Allows custom HTTP headers to be set via configuration for all HTTP requests.","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"Method overrides what HTTP method to specify in requests to the Publish Point. If not specified the service will default to POST."},"playback_base_url":{"type":"string","description":"The base URL where published playlists will be able to be obtained. This is often different than the publish_base_url for CDN publishing workflows.","format":"uri-reference"},"playback_query_params":{"type":"string","description":"Specifies any query parameters that will be added to playback urls. Should not include the initial '?' Example: 'foo=bar\u0026q=golang'"},"publish_base_url":{"type":"string","description":"The base URL where generated playlists will be sent/published. Each publish point requires a unique 'publish_base_url'.","format":"uri-reference"}},"additionalProperties":false}},"require_publish":{"type":"string","description":"Indicates which publish points must succeed for segment publishing to use the keys.","enum":["ANY","ALL"]}},"additionalProperties":false}},"additionalProperties":false},"partial_presentations":{"type":"array","description":"Partial Presentation Playback URLs","items":{"type":"string"}},"url":{"type":"string","description":"Playback URL"}},"additionalProperties":false,"required":["url"]}},"hls":{"type":"array","description":"HLS playback configurations","items":{"type":"object","properties":{"content_protection":{"type":"object","description":"Content Protection settings","properties":{"atlas":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"asset_id":{"type":"string","description":"The Asset Identifier which was taken from the token entitlement service request."},"company_id":{"type":"string","description":"The Identifier of the Company that this token belongs."},"drms":{"type":"array","description":"DRM system keys to request","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"widevine_v0_pssh_box":{"type":"boolean","description":"When TRUE the KeyID is not embedded in the pssh box which sets the version to 0. Defaults to generating v1 pssh_boxes that includes the key_id"}},"additionalProperties":false},"bulk_file":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"iv_rotation":{"type":"string","description":"How often the IV should be rotated and how it should be created","enum":["RANDOM_PER_KEY","PER_SEGMENT_NUMBER","UNIQUE_PER_SEGMENT"]}},"additionalProperties":false},"common":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"scheme_type":{"type":"string","description":"Defines the scheme that can be used with Common Encryption","enum":["CENC","CBCS"]}},"additionalProperties":false},"cpix":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"certificates_id":{"type":"string","description":"Unique ID used for certificate settings, unique per distributor."},"content_id":{"type":"string","description":"(Optional) Content ID that identifies this channel in the CPIX service. Value is defined by the DRM system owner, and if defined will be included as part of a POST request."},"credentials_id":{"type":"string","description":"Unique ID used for credentials settings, unique per distributor."},"decryption_key_id":{"type":"string","description":"Unique ID of the decryption key to use in case the server response contains content keys encrypted. The key is unique per distirutor, and configured ahead of time by the publishing team and the CPIX service owner."},"drms":{"type":"array","description":"(Optional) DRM system keys to request. If not defined a GET request will be done, and any key returned will be handled. If defined, random kid(s) (key ids) will be generated on rotation for each DRM system, and a POST request will be done to create them.","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"headers_id":{"type":"string","description":"(Optional) An identifier to a list of HTTP headers to be added to the request sent to the CPIX service."},"uri":{"type":"string","description":"CPIX service URI","format":"uri-reference"}},"additionalProperties":false},"key_rotation":{"type":"object","description":"Configures how keys should be rotated","properties":{"interval_secs":{"type":"number","description":"Rotate keys based on the specified time interval. If Program is also provided then this time interval will only apply to media segments that are outside of program boundaries. If Program is NOT provided then only this time interval will be used to decided when to rotate keys.","format":"float","minimum":300},"program":{"type":"boolean","description":"Rotate keys on (SCTE35) program boundaries such that no two programs will be protected with the same key."},"program_overlap_skip_encrypt":{"type":"boolean","description":"Do not encrypt segments that are part of more than one SCTE-35 program."}},"additionalProperties":false},"sample_aes":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","additionalProperties":false},"simple":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"publish_points":{"type":"array","description":"Pub points where keys should be published. If multiple are specified, only one needs to succeed to consider the key successfully published.","items":{"type":"object","properties":{"basic_auth":{"type":"object","description":"Only one of ['basic_auth'] may be set.","properties":{"password":{"type":"string","description":"Plain text password for basic auth."},"username":{"type":"string","description":"Username for basic auth."}},"additionalProperties":false},"compression":{"type":"string","description":"Configures whether or not (and how) to compress manifests being published to the origin. If not specified, manifests will not be compressed.","enum":["NONE","GZIP"]},"cross_playback_paths":{"type":"array","description":"Cross Playback Paths are playback paths that reference alternative content. These playback paths could reference publish points from the same publication or a completely different encoder and packager altogether. Content published to an endpoint referenced by one of these cross playback paths MUST be of the same Manifest.Type.","items":{"type":"string"}},"do_not_monitor":{"type":"boolean","description":"(Optional) Specifies if this pubpoint should not be monitored by PLM."},"headers":{"type":"object","description":"Allows custom HTTP headers to be set via configuration for all HTTP requests.","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"Method overrides what HTTP method to specify in requests to the Publish Point. If not specified the service will default to POST."},"playback_base_url":{"type":"string","description":"The base URL where published playlists will be able to be obtained. This is often different than the publish_base_url for CDN publishing workflows.","format":"uri-reference"},"playback_query_params":{"type":"string","description":"Specifies any query parameters that will be added to playback urls. Should not include the initial '?' Example: 'foo=bar\u0026q=golang'"},"publish_base_url":{"type":"string","description":"The base URL where generated playlists will be sent/published. Each publish point requires a unique 'publish_base_url'.","format":"uri-reference"}},"additionalProperties":false}},"require_publish":{"type":"string","description":"Indicates which publish points must succeed for segment publishing to use the keys.","enum":["ANY","ALL"]}},"additionalProperties":false}},"additionalProperties":false},"partial_presentations":{"type":"array","description":"Partial Presentation Playback URLs","items":{"type":"string"}},"url":{"type":"string","description":"Playback URL"}},"additionalProperties":false,"required":["url"]}}},"additionalProperties":false},"ChannelTimelineEntry":{"type":"object","properties":{"action":{"type":"string","description":"Shortcode indicating what action was taken"},"agent":{"type":"string","description":"Agent responsible for the action taken"},"request_body":{"type":"string","description":"The request body, if any, of the original action"},"status_code":{"type":"integer","description":"HTTP Status code indicating outcome of the action.","format":"int32"},"timestamp":{"type":"string","description":"Timestamp of the action in UTC","format":"date-time"},"trace_id":{"type":"string","description":"Correlation identifier for tracing"}},"additionalProperties":false,"required":["trace_id","agent","action","status_code","timestamp","request_body"]},"ChannelTimelineEntryList":{"type":"array","items":{"$ref":"#/components/schemas/ChannelTimelineEntry"}},"ErrorModel":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem.","example":"Property foo is required but is missing."},"errors":{"type":"array","description":"Optional list of individual error details","items":{"type":"object","properties":{"location":{"type":"string","description":"Where the error occured, e.g. 'body.items[3].tags' or 'path.thing-id'"},"message":{"type":"string","description":"Error message text"},"value":{"description":"The value at the given location"}},"additionalProperties":false}},"instance":{"type":"string","description":"A URI reference that identifies the specific occurence of the problem.","format":"uri","example":"https://example.com/error-log/abc123"},"status":{"type":"integer","description":"HTTP status code","format":"int32","example":400},"title":{"type":"string","description":"A short, human-readable summary of the problem type. This value should not change between occurances of the error.","example":"Bad Request"},"type":{"type":"string","description":"A URI reference to human-readable documentation for the error.","format":"uri","default":"about:blank","example":"https://example.com/errors/example"}},"additionalProperties":false},"GenericSignal":{"type":"object","properties":{"duration":{"type":"integer","description":"Splice duration (ms). If no duration or a duration of 0 then the splice is indifinite.","format":"int32","default":0,"example":30000,"minimum":1000},"event_id":{"type":"integer","description":"Event ID","format":"int32","example":1234,"minimum":0},"segment_type":{"type":"string","description":"Segment type","enum":["splice_insert","content_id","program","program_breakaway","chapter","break","opening_credit","closing_credit","provider_placement","distributor_placement","provider_overlay","distributor_overlay","provider_ad","distributor_ad","unscheduled_event","network","slate"],"example":"program"},"signal_type":{"type":"string","description":"Signal type","enum":["start","end","breakaway","resumption"],"example":"start"},"slate_uri":{"type":"string","description":"Slate url","format":"uri","example":"https://www.example.com/logo.ts"},"type":{"type":"string","description":"Qualifier type","enum":["none","overlap","in_progress"],"example":"none"},"upids":{"type":"array","description":"UPIDs","items":{"type":"string"},"example":["03:ABCD0001000H","08:0A42235B81BC70FC","06:0000-0001-2C52-0000-P-0000-0000-0"]}},"additionalProperties":false,"required":["signal_type","segment_type","event_id"]},"GenericSignalList":{"type":"array","items":{"$ref":"#/components/schemas/GenericSignal"}},"InsertMetadataRequest":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"payload":{"type":"string","description":"ID3 payload as UTF-8 text"}},"additionalProperties":false,"required":["payload"]},"InsertMetadataResult":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"presentation_time":{"type":"string","description":"The media stream timestamp for where the transcoder inserted the metadata","format":"date-time"}},"additionalProperties":false,"required":["presentation_time"]},"ProgramSignal":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"event_id":{"type":"integer","description":"Event ID","format":"int32","example":1234,"minimum":0}},"additionalProperties":false,"required":["event_id"]},"Scte35":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"payload":{"type":"string","description":"The SCTE-35 payload, encoded as base-64 in JSON or binary data in CBOR","example":"/DAvAAAAAAAAAP/wBQb/d2+7OgAZAhdDVUVJAAAD6ACACAic1fd1d2+7OjABAeo2v/g="}},"additionalProperties":false,"required":["payload"]},"Segment":{"type":"object","properties":{"end":{"type":"string","description":"The program time when the segment ends (or ended).","format":"date-time"},"event_id":{"type":"integer","description":"The event_id used in the Signal START that resulted in this signaling segment.","format":"int32","minimum":0},"segment_id":{"type":"integer","description":"Uniquely identifies the signaling segment for a channel. This is assigned by the transcoder when the segment is created.","format":"int64","minimum":0},"slate_url":{"type":"string","description":"When set, contains the URL to the slate media asset that will play for the duration of the segment."},"start":{"type":"string","description":"The program time when the segment starts (or started).","format":"date-time"},"type":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]}},"additionalProperties":false},"SegmentList":{"type":"array","items":{"$ref":"#/components/schemas/Segment"}},"Slate":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"duration":{"type":"integer","description":"Slate duration (ms)","format":"int32","default":0,"example":30000,"minimum":1000},"uri":{"type":"string","description":"Slate url","format":"uri","example":"https://www.example.com/logo.ts"}},"additionalProperties":false,"required":["uri"]},"Source":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"id":{"type":"string","description":"Unique source ID","example":"s-knc54ts9kazynm97","readOnly":true},"name":{"type":"string","description":"Source name","example":"HBO"},"self":{"type":"string","description":"Link to this resource","format":"uri","readOnly":true}},"additionalProperties":false,"required":["id","name"]},"SpliceInsertEndSignal":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"event_id":{"type":"integer","description":"Event ID","format":"int32","example":1234,"minimum":0}},"additionalProperties":false,"required":["event_id"]},"SpliceInsertStartSignal":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"duration":{"type":"integer","description":"Splice duration (ms). If no duration or a duration of 0 then the splice is indifinite.","format":"int32","default":0,"example":30000,"minimum":1000},"event_id":{"type":"integer","description":"Event ID","format":"int32","example":1234,"minimum":0},"slate_uri":{"type":"string","description":"Slate url","format":"uri","example":"https://www.example.com/logo.ts"},"upids":{"type":"array","description":"UPIDs","items":{"type":"string"},"example":["03:ABCD0001000H","08:0A42235B81BC70FC","06:0000-0001-2C52-0000-P-0000-0000-0"]}},"additionalProperties":false,"required":["event_id"]},"Summary":{"type":"object","properties":{"id":{"type":"string","description":"Station source ID","example":"stn-knc54ts9kazynm97"},"name":{"type":"string","description":"Source name","example":"HBO"},"self":{"type":"string","description":"Link to this resource","format":"uri","readOnly":true}},"additionalProperties":false,"required":["id"]},"Summary2":{"type":"object","properties":{"etag":{"type":"string","description":"Content hash","example":"4bc54fd8"},"id":{"type":"string","description":"Unique channel ID","example":"hbo-west"},"labels":{"type":"array","description":"Channel Labels","items":{"type":"string"}},"name":{"type":"string","description":"Friendly channel description","example":"HBO West"},"self":{"type":"string","description":"Link to this resource","format":"uri","readOnly":true},"source":{"type":"object","description":"Channel source","properties":{"id":{"type":"string","description":"Station source ID","example":"stn-knc54ts9kazynm97"},"name":{"type":"string","description":"Source name","example":"HBO"},"self":{"type":"string","description":"Link to this resource","format":"uri","readOnly":true}},"additionalProperties":false,"required":["id"]}},"additionalProperties":false,"required":["id","etag","source"]},"SummaryList":{"type":"array","items":{"$ref":"#/components/schemas/Summary"}},"SummaryList2":{"type":"array","items":{"$ref":"#/components/schemas/Summary2"}},"put-channel-request":{"type":"object","properties":{"$schema":{"type":"string","description":"An optional URL to a JSON Schema document describing this resource","format":"uri"},"created":{"type":"string","description":"Date and time the channel was created.","format":"date-time","readOnly":true},"id":{"type":"string","description":"External Channel ID provided at channel creation time","example":"my-channel","minLength":1,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$","readOnly":true},"ingest":{"type":"object","description":"Ingest configures inputs for the transcoder.","properties":{"slate":{"type":"object","description":"Slate configures default slating behavior.","properties":{"source_loss_url":{"type":"string","description":"Source loss URL defines the location of the TS file to play when no source is available. It must have one audio and one video stream. Either MPEG2 or H.264 can be used.","format":"uri-reference","example":"https://example.com/slate.ts"}},"additionalProperties":false},"source":{"type":"object","description":"Source provides a reference to the input media stream for this channel.","properties":{"audio_sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"language":{"type":"string","description":"RFC 5646, e.g. 'en' 'en-US'","minLength":1},"name":{"type":"string","description":"Language fiendly name, e.g. 'English', 'Spanish'","minLength":1},"selector":{"type":"string","description":"Expression for choosing an audio track in the stream for this AudioSource https://istreamplanet.atlassian.net/wiki/spaces/T/pages/847970791/Proposal+Audio+Track+Selection"}},"additionalProperties":false},"minItems":1},"captions_source":{"type":"string","description":"Closed captions source embedding. If unspecified, defaults to ATSC_A53.","enum":["ATSC_A53","SMPTE_2038"]},"id":{"type":"string","description":"Unique identifier for this source.","example":"s-examplej95ah2qab"},"self":{"type":"string","description":"Self link for the source.","format":"uri-reference","readOnly":true}},"additionalProperties":false,"required":["id"]}},"additionalProperties":false,"required":["source"]},"labels":{"type":"array","description":"Optional labels for a channel. Any included labels must be at least 1 character long, but no greater than 256 characters. The maximum number of labels is 10.","items":{"type":"string"},"maxItems":10},"modified":{"type":"string","description":"Date and time the channel was last modified.","format":"date-time","readOnly":true},"name":{"type":"string","description":"A friendly human-readable name for the channel. This will get displayed in user interfaces.","example":"My Channel"},"packaging":{"type":"object","description":"Packaging configures media format and content protection settings.","properties":{"packagers":{"type":"object","description":"Defines the list of packagers available for Publications.","additionalProperties":{"type":"object","properties":{"content_protection":{"type":"object","description":"Configures how to protect packaged media segments.","properties":{"atlas":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"asset_id":{"type":"string","description":"The Asset Identifier which was taken from the token entitlement service request."},"company_id":{"type":"string","description":"The Identifier of the Company that this token belongs."},"drms":{"type":"array","description":"DRM system keys to request","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"widevine_v0_pssh_box":{"type":"boolean","description":"When TRUE the KeyID is not embedded in the pssh box which sets the version to 0. Defaults to generating v1 pssh_boxes that includes the key_id"}},"additionalProperties":false},"bulk_file":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"iv_rotation":{"type":"string","description":"How often the IV should be rotated and how it should be created","enum":["RANDOM_PER_KEY","PER_SEGMENT_NUMBER","UNIQUE_PER_SEGMENT"]}},"additionalProperties":false},"common":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","properties":{"scheme_type":{"type":"string","description":"Defines the scheme that can be used with Common Encryption","enum":["CENC","CBCS"]}},"additionalProperties":false},"cpix":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"certificates_id":{"type":"string","description":"Unique ID used for certificate settings, unique per distributor."},"content_id":{"type":"string","description":"(Optional) Content ID that identifies this channel in the CPIX service. Value is defined by the DRM system owner, and if defined will be included as part of a POST request."},"credentials_id":{"type":"string","description":"Unique ID used for credentials settings, unique per distributor."},"decryption_key_id":{"type":"string","description":"Unique ID of the decryption key to use in case the server response contains content keys encrypted. The key is unique per distirutor, and configured ahead of time by the publishing team and the CPIX service owner."},"drms":{"type":"array","description":"(Optional) DRM system keys to request. If not defined a GET request will be done, and any key returned will be handled. If defined, random kid(s) (key ids) will be generated on rotation for each DRM system, and a POST request will be done to create them.","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"headers_id":{"type":"string","description":"(Optional) An identifier to a list of HTTP headers to be added to the request sent to the CPIX service."},"uri":{"type":"string","description":"CPIX service URI","format":"uri-reference"}},"additionalProperties":false},"key_rotation":{"type":"object","description":"Configures how keys should be rotated","properties":{"interval_secs":{"type":"number","description":"Rotate keys based on the specified time interval. If Program is also provided then this time interval will only apply to media segments that are outside of program boundaries. If Program is NOT provided then only this time interval will be used to decided when to rotate keys.","format":"float","minimum":300},"program":{"type":"boolean","description":"Rotate keys on (SCTE35) program boundaries such that no two programs will be protected with the same key."},"program_overlap_skip_encrypt":{"type":"boolean","description":"Do not encrypt segments that are part of more than one SCTE-35 program."}},"additionalProperties":false},"sample_aes":{"type":"object","description":"Only one of ['bulk_file', 'sample_aes', 'common'] may be set.","additionalProperties":false},"simple":{"type":"object","description":"Only one of ['simple', 'atlas', 'cpix'] may be set.","properties":{"publish_points":{"type":"array","description":"Pub points where keys should be published. If multiple are specified, only one needs to succeed to consider the key successfully published.","items":{"type":"object","properties":{"basic_auth":{"type":"object","description":"Only one of ['basic_auth'] may be set.","properties":{"password":{"type":"string","description":"Plain text password for basic auth."},"username":{"type":"string","description":"Username for basic auth."}},"additionalProperties":false},"compression":{"type":"string","description":"Configures whether or not (and how) to compress manifests being published to the origin. If not specified, manifests will not be compressed.","enum":["NONE","GZIP"]},"cross_playback_paths":{"type":"array","description":"Cross Playback Paths are playback paths that reference alternative content. These playback paths could reference publish points from the same publication or a completely different encoder and packager altogether. Content published to an endpoint referenced by one of these cross playback paths MUST be of the same Manifest.Type.","items":{"type":"string"}},"do_not_monitor":{"type":"boolean","description":"(Optional) Specifies if this pubpoint should not be monitored by PLM."},"headers":{"type":"object","description":"Allows custom HTTP headers to be set via configuration for all HTTP requests.","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"Method overrides what HTTP method to specify in requests to the Publish Point. If not specified the service will default to POST."},"playback_base_url":{"type":"string","description":"The base URL where published playlists will be able to be obtained. This is often different than the publish_base_url for CDN publishing workflows.","format":"uri-reference"},"playback_query_params":{"type":"string","description":"Specifies any query parameters that will be added to playback urls. Should not include the initial '?' Example: 'foo=bar\u0026q=golang'"},"publish_base_url":{"type":"string","description":"The base URL where generated playlists will be sent/published. Each publish point requires a unique 'publish_base_url'.","format":"uri-reference"}},"additionalProperties":false}},"require_publish":{"type":"string","description":"Indicates which publish points must succeed for segment publishing to use the keys.","enum":["ANY","ALL"]}},"additionalProperties":false}},"additionalProperties":false},"mp2t":{"type":"object","description":"Uses MP2T format for each segments. Only one of ['mp2t', 'mp4'] may be set.","properties":{"force_unmuxed_audio":{"type":"boolean","description":"Forces the Video and Audio Encodings to be unmuxed when there is one audio encodings. This setting will have to be uniformed across MP2T packagers within a config. When there are two or more audio encodings, unmuxed will be used automatically."},"insert_id3_utc_time":{"type":"boolean","description":"If true, insert ID3 tags that include a UTC timestamp. This is a Turner/WM-specific extension."}},"additionalProperties":false},"mp4":{"type":"object","description":"Uses MP4 format for each segments. Only one of ['mp2t', 'mp4'] may be set.","properties":{"caption_placement":{"type":"string","description":"CaptionPlacement defines where caption messages should be placed in the output MP4.","enum":["SEI_PAYLOAD","CLCP_TRACK"]},"insert_pssh_box":{"type":"boolean","description":"Insert pssh boxes generated by content protection into packaged segments. Defaults to not insert pssh boxes to the packaged segments."}},"additionalProperties":false}},"additionalProperties":false}}},"additionalProperties":false},"publishing":{"type":"object","description":"Publishing configures playlist formats and where to send video and playlist data.","properties":{"closed_caption_streams":{"type":"array","description":"Configures how captioning information is published.","items":{"type":"object","properties":{"auto_select":{"type":"string","description":"Indicates that the client should play the captioning media selection group if the user has not indicated a user preference. If both auto_select and default are not set, the first captioning media selection group will be used.","enum":["NO","YES"]},"default":{"type":"string","description":"Configures the captioning media selection group that will be played if the user has not indicated a user preference. If both auto_select and default are not set, the first captioning media selection group will be used.","enum":["NO","YES"]},"language":{"type":"string","description":"Language code as RFC 5646, e.g. 'en' 'en-US'."},"name":{"type":"string","description":"Source stream name."}},"additionalProperties":false}},"feature_flags":{"type":"array","description":"Set of string identifiers corresponding to features that this Channel is opting in.","items":{"type":"string"}},"live2vod":{"type":"object","description":"Live2VOD configuration used to archive the channel data, this allows clip creation after the content is no longer live.","properties":{"product_id":{"type":"string","description":"Product ID that VODs will be associated with in the Live2VOD system. The value of this ID is pre-configured in the Live2VOD portal.","minLength":1},"retention_days":{"type":"integer","description":"Specifies the retention time, in days, for archived content.","format":"int32","minimum":1,"maximum":30}},"additionalProperties":false},"publications":{"type":"array","description":"A set of individual configurations that each can configure a specific destination and mechanism of delivery for segments and/or playlists.","items":{"type":"object","properties":{"audio_encoder_ids":{"type":"array","description":"Optionally specify which audio encoders should be used for this publication. If none are specified, all audio encoders configured for the transcoder will be used.","items":{"type":"string"},"uniqueItems":true},"create_vods":{"type":"boolean","description":"Create VODs for all publish points in this publication. Note that Live2VOD must also be configured for the parent |Channel|."},"dash":{"type":"object","description":"DASH configures publication settings. Only one of HLS or DASH can be set.","properties":{"minimum_update_period_secs":{"type":"integer","description":"Sets the minimumUpdatePeriod field in MPD to be this value. If set to 0 (default), segment duration is used. The value shall not exceed the 'suggested_presentation_delay_secs'.","format":"int32"},"signaling_formats":{"type":"array","description":"Signaling formats specifies which SCTE-35 timeline marker formatting to use when rendering playlists.","items":{"type":"string","enum":["SCTE35_BIN_DFP","SCTE35_SPLICE_INFO_SECTION","SCTE35_BIN","SCTE35_SPLICE_INFO_SECTION_WITH_PRESENTATION_TIME","SCTE35_BIN_WITH_PRESENTATION_TIME"]},"uniqueItems":true},"suggested_presentation_delay_secs":{"type":"integer","description":"The suggested amount of time (in seconds) the player should be behind the live stream. This value must be greater or equal to 'minimum_update_period_secs'.","format":"int32","minimum":0},"url_type":{"type":"string","description":"If set to 'URL_TYPE_UNDEFINED' playlist generation will use 'RELATIVE'.","enum":["RELATIVE","ABSOLUTE","HOST_RELATIVE"]}},"additionalProperties":false},"drms":{"type":"array","description":"Optionally specify which DRMs to advertise in the playlist. If specified, this must be a subset of the DRMs specified by the packager associated with this publication. If omitted or empty, all DRMs specified by the packager will be advertised. This setting can only be used for HLS playlists.","items":{"type":"string","enum":["WIDEVINE","FAIRPLAY","PRIMETIME","PLAYREADY"]},"uniqueItems":true},"dvr_window_secs":{"type":"integer","description":"DVR window is the max sum(duration of media segments) that will be kept in a manifest at a given time in seconds. The max supported DVR window is 10 hours.","format":"int32","minimum":0,"exclusiveMinimum":true,"maximum":36000},"hls":{"type":"object","description":"HLS configures publication settings. Only one of HLS or DASH can be set.","properties":{"audio_only_variants":{"type":"string","description":"Defines how audio only variant streams are included in the master playlist, where the variant streams are defined by #EXT-X-STREAM-INF tag, the tag attributes provide information about the Stream. If NOT_SET - honor the deprecated 'exclude_audio_only' flag. Later when the deprecated flag is removed, the NOT_SET would mean INCLUDE_DEFAULT The INCLUDE_DEFAULT option - only the default 'audio only variant stream' is included in master playlist. This is the most common use case. INCLUDE_NONE - no audio only variant streams are included in the master playlist, it replaces 'exclude_audio_only' setting. INCLUDE_ALL - include all audio only variant streams in the master playlist.","enum":["INCLUDE_DEFAULT","INCLUDE_NONE","INCLUDE_ALL"]},"gap_tags":{"type":"string","description":"Allows turning gap tags ON/OFF. When turned ON - the tag '#EXT-X-GAP' is inserted into media playlist for a missing segment. When turned OFF - Discontinuity is inserted into the playlist for missing segment(s). The default option UNDEFINED is mapped to OFF. Note: Gap tags are always inserted for the missing thumbnail segments independently of this setting","enum":["ON","OFF"]},"master_publish_frequency_secs":{"type":"integer","description":"How often the master playlist(s) should be published in seconds. A value of 0 means the master playlist will only be published once at channel start.","format":"int32"},"master_url_type":{"type":"string","description":"Allows specifying url type for HLS master playlists. If not provided, playlist generation will use 'RELATIVE'.","enum":["RELATIVE","ABSOLUTE","HOST_RELATIVE"]},"media_url_type":{"type":"string","description":"Allows specifying url type for HLS media playlists. If not provided, playlist generation will use 'RELATIVE'.","enum":["RELATIVE","ABSOLUTE","HOST_RELATIVE"]},"partial_presentations":{"type":"array","description":"Specify which partial presentations should be used for this presentation. Partial presentations are additional master playlists that point to a subset of the parent presentation's media streams/variant playlists.","items":{"type":"object","properties":{"audio_encoder_ids":{"type":"array","description":"Specify which audio encoders should be used for this presentation. If none are specified, all audio encoders configured for the parent Publication will be used.","items":{"type":"string"},"uniqueItems":true},"iframe_only_encoder_ids":{"type":"array","description":"List of video encoder IDs that should have I-Frame only playlists generated for them.","items":{"type":"string"},"uniqueItems":true},"playlist_path":{"type":"string","description":"Sub-path that will be appended onto the publish and playback base URLs of HTTP PublishPoints for published playlist files.","minLength":1},"thumbnail_encoder_ids":{"type":"array","description":"Specify which thumbnail encoders should be used for this presentation. If none are specified, all thumbnail encoders configured for the parent Publication will be used.","items":{"type":"string"},"uniqueItems":true},"video_encoder_ids":{"type":"array","description":"Specify which video encoders should be used for this presentation. If none are specified, all video encoders configured for the parent Publication will be used.","items":{"type":"string"},"uniqueItems":true}},"additionalProperties":false}},"pdt_on_every_segment":{"type":"boolean","description":"When true a #EXT-X-PROGRAM-DATE-TIME tag will be placed on every media segment in media playlists. When false, the default behavior, the PDT tag is set according to the HLS specification."},"signaling_formats":{"type":"array","description":"Signaling formats specifies which SCTE-35 timeline marker formatting to use when rendering playlists.","items":{"type":"string","enum":["MDIALOG","FREEWHEEL","ADOBE_SIMPLE","ADOBE_SCTE35","APPLE_SCTE35","AD_SIMPLE","SCTE35","SCTE35_2019","SCTE35_2019_EVERY_SEGMENT"]},"uniqueItems":true},"utc_in_segment_title":{"type":"boolean","description":"Include a UTC timestamp (that is equivalent in value to #EXT-X-PROGRAM-DATE-TIME) in the title of each media segment in media playlists. Ex. #EXTINF:6.006,LTC=2020-01-01T12:00:00.000Z"}},"additionalProperties":false},"iframe_only_encoder_ids":{"type":"array","description":"List of video encoder IDs that should have I-Frame only playlists generated for them.","items":{"type":"string"},"uniqueItems":true},"master_playlist_name":{"type":"string","description":"Optional master manifest name. When not supplied a default of 'master' will be used."},"packager_id":{"type":"string","description":"Determines how segments in this publication are packaged. Must reference a packager in 'packaging.packagers'. However, if this is a playlist-only publication (i.e. contains publish points that specify 'playlist_only_for'), this must remain unset as the packager will be inferred from the publication this one is providing playlists for."},"publish_points":{"type":"array","description":"Publish points specify where to output.","items":{"type":"object","properties":{"http":{"type":"object","description":"HTTP destination where media segments and playlists will be published.","properties":{"basic_auth":{"type":"object","description":"Only one of ['basic_auth'] may be set.","properties":{"password":{"type":"string","description":"Plain text password for basic auth."},"username":{"type":"string","description":"Username for basic auth."}},"additionalProperties":false},"compression":{"type":"string","description":"Configures whether or not (and how) to compress manifests being published to the origin. If not specified, manifests will not be compressed.","enum":["NONE","GZIP"]},"cross_playback_paths":{"type":"array","description":"Cross Playback Paths are playback paths that reference alternative content. These playback paths could reference publish points from the same publication or a completely different encoder and packager altogether. Content published to an endpoint referenced by one of these cross playback paths MUST be of the same Manifest.Type.","items":{"type":"string"}},"do_not_monitor":{"type":"boolean","description":"(Optional) Specifies if this pubpoint should not be monitored by PLM."},"headers":{"type":"object","description":"Allows custom HTTP headers to be set via configuration for all HTTP requests.","additionalProperties":{"type":"string"}},"method":{"type":"string","description":"Method overrides what HTTP method to specify in requests to the Publish Point. If not specified the service will default to POST."},"playback_base_url":{"type":"string","description":"The base URL where published playlists will be able to be obtained. This is often different than the publish_base_url for CDN publishing workflows.","format":"uri-reference"},"playback_query_params":{"type":"string","description":"Specifies any query parameters that will be added to playback urls. Should not include the initial '?' Example: 'foo=bar\u0026q=golang'"},"publish_base_url":{"type":"string","description":"The base URL where generated playlists will be sent/published. Each publish point requires a unique 'publish_base_url'.","format":"uri-reference"}},"additionalProperties":false},"id":{"type":"string","description":"uniquely identifies this publish_point within a channel configuration. Can be referenced by other publish_points in the 'playlist_only_for' field."},"playlist_only_for":{"type":"string","description":"playlist_only_for identifies the id of the publish_point that has the segments for this publish_point, which is only publishing a playlist for those segments. All publish_points within a publication must either have 'playlist_only_for' all set or all not set."}},"additionalProperties":false},"minItems":1},"redundant_publishing":{"type":"boolean","description":"When redundant publishing is enabled succeeding to publish a given media segment to at least one HTTPPublishPoint in publish_points will result in that segment showing up in manifests as playable content. Will require at least two publish_points defined within the same publication."},"thumbnail_encoder_ids":{"type":"array","description":"Optional: Specify what thumbnail_encoders should be in this Publication","items":{"type":"string"},"uniqueItems":true},"use_strict_bitrate":{"type":"boolean","description":"Optional, indicates whether we should pad the bitrate (false) or use what is explicitly provided (true)"},"video_encoder_ids":{"type":"array","description":"Optionally specify which video encoders should be used for this publication. If none are specified, all video encoders configured for the transcoder will be used.","items":{"type":"string"},"uniqueItems":true}},"additionalProperties":false},"minItems":1}},"additionalProperties":false},"region":{"type":"string","description":"Region represents the general geolocation for transcoding and stream egress from iStreamPlanet. If no region is provided at channel creation time, then 'US_WEST' is used.","enum":["US_WEST","US_EAST"]},"resource_class":{"type":"string","description":"If the ResourceClass is unspecified the channel will default to run in the 'DYNAMIC' ResourceClass. Note that changing the ResourceClass for a running channel is supported and will be performed with no downtime.","enum":["DYNAMIC","STATIC"]},"self":{"type":"string","description":"Self link for the channel.","format":"uri-reference","readOnly":true},"signaling":{"type":"object","description":"Signaling configures in-band signaling (i.e. SCTE-35).","properties":{"blackout_settings":{"type":"object","description":"Configure blackout: replacing content with custom slates based on program signaling.","properties":{"default_blackout_slate_url":{"type":"string","description":"Default slate URL to use for blackouts. Can be overridden by the 'slates' field.","format":"uri-reference","example":"https://example.com/blackout.ts"},"force_blackout_segments":{"type":"array","description":"List of signaling segment types to force blackout, e.g. add 'SPLICE_INSERT' to blackout all ads signaled via SCTE-35 splice_insert.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]}},"honor_web_delivery_restriction":{"type":"boolean","description":"Determines whether to honor the web_delivery_allowed attribute in SCTE-35 segmentation descriptors. When this is enabled, a segmentation descriptor with web_delivery_allowed=false will trigger a blackout."},"slates":{"type":"array","description":"Per-segment type slate overrides.","items":{"type":"object","properties":{"blackout_slate_url":{"type":"string","description":"Blackout slate URL to use for the specified segments. It must have one audio and one video stream. Either MPEG2 or H.264 can be used.","format":"uri-reference","example":"https://example.com/blackout.ts"},"segments":{"type":"array","description":"Segment types that shall utilize the blackout slate URL. Any segment type defined here _must_ also be present in the parent signaling configuration.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]}},"upids":{"type":"array","description":"Exclusive list of hex string encoded colon separated UPID Type:ID pairs (e.g. '0A:1A2B3C4D') to enable this blackout slate on.","items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false},"disable_inband_parsing":{"type":"boolean","description":"Disable parsing SCTE-35 in-band signaling. Out-of-band signaling is still allowed."},"segment_settings":{"type":"array","description":"Settings that apply to specific segments.","items":{"type":"object","properties":{"default_duration_secs":{"type":"integer","description":"Specifies the duration of a segment when the in-band SCTE-35 that initiates it (e.g. Distributor Placement Opportunity Start) is missing an explicit duration. N.B. for program and ad types, this also affects 'Simple Program' and 'Simple Ad' markers, respectively.","format":"int32","minimum":0,"maximum":172800},"emit_default_duration":{"type":"boolean","description":"Determines whether to include the default duration in the output SCTE-35 messages when the input SCTE-35 message did not specify a duration."},"offset_millis":{"type":"integer","description":"Specifies a 'correction' to the splice_time of in-band SCTE-35 in milliseconds.","format":"int32","minimum":-4000,"maximum":4000},"segment_end_mode":{"type":"string","description":"Determines which Segment End signaling mode to use for the provided segments. If unspecified, defaults to MATCH_END_EVENT_ID.","enum":["MATCH_END_EVENT_ID","IGNORE_END_EVENT_ID","IGNORE_END_SIGNAL"]},"segments":{"type":"array","description":"Specifies the list of which segment types this setting applies to. Any segment type defined here _must_ also be present in the parent signaling configuration.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]},"uniqueItems":true},"tier_filter":{"type":"object","description":"Specifies how to filter the provided segments, when received through in-band SCTE-35, based on the SCTE-35 SpliceInfoSection Tier.","properties":{"explicit_tier":{"type":"object","description":"Only one of ['explicit_tier'] may be set.","properties":{"values":{"type":"array","items":{"type":"integer","format":"int32"}}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}},"segments":{"type":"array","description":"Segment types to process for in-band signaling.","items":{"type":"string","enum":["SPLICE_INSERT","CONTENT_ID","PROGRAM","PROGRAM_BLACKOUT_OVERRIDE","PROGRAM_BREAKAWAY","CHAPTER","BREAK","OPENING_CREDIT","CLOSING_CREDIT","PROVIDER_PLACEMENT_OP","DISTRIBUTOR_PLACEMENT_OP","PROVIDER_OVERLAY_OP","DISTRIBUTOR_OVERLAY_OP","PROVIDER_AD","DISTRIBUTOR_AD","UNSCHEDULED_EVENT","NETWORK","SLATE"]},"uniqueItems":true}},"additionalProperties":false},"tags":{"type":"object","description":"Use ChannelMetadata when possible instead of tags.","properties":{"monitored":{"type":"boolean","description":"Indicates whether this channel is monitored by automation."}},"additionalProperties":false},"transcode":{"type":"object","description":"Transcode configures audio/video conversion settings.","properties":{"audio_encoders":{"type":"array","description":"Audio encoders specify audio conversion settings, e.g. channels, samples, codec, bitrate, etc.","items":{"type":"object","properties":{"audio_source_id":{"type":"string","description":"Audio source ID specifies which stream within the audio source to use.","minLength":1},"bit_rate":{"type":"integer","description":"Bit rate specifies the constant number of bits used per second. Higher values result in better audio quality but bigger file sizes.","format":"int32","example":128000,"minimum":0,"exclusiveMinimum":true},"channels":{"type":"integer","description":"Channels specifies the number of audio channels to encode. The available options depend on the audio codec. The encoder supports different channel configurations based on the codec; AAC 1-2 channels, AC3 supports 1-6, and EAC3 supports 1-8. For example, for AC3 5.1 one would set 6 channels. Channel configurations are as follows: 1 - Mono / Dolby 1.0 (C), 2 - Stereo / Dolby 2.0 (L, R), 3 - Dolby 3.0 (L, C, R), 4 - Dolby 4.0 (L, C, R, l), 5 - Dolby 5.0 (L, C, R, l, r), 6 - Dolby 5.1 (L, C, R, l, r, LFE), 7 - Dolby 7.0 (L, C, R, l, r, Lrs, Rrs), 8 - Dolby 7.1 (L, C, R, l, r, Lrs, Rrs, LFE).","format":"int32","example":2,"minimum":0,"exclusiveMinimum":true,"maximum":8},"codec":{"type":"string","description":"Codec specifies the audio data encoding format.","enum":["AAC_LC","AC3","EAC3"]},"id":{"type":"string","description":"Encoder ID. IDs must be unique for all audio encoders. This ID is referenced when setting up playlist publishing.","example":"aac128","minLength":1},"loudness":{"type":"object","description":"Loudness normalization settings.","properties":{"dialog_intel":{"type":"boolean","description":"Enable Dialog Intelligence. Only supported for (E)AC-3 encoders."},"lkfs":{"type":"integer","description":"Loudness normalization LKFS setting. Default value is -24.","format":"int32","minimum":-31,"maximum":-10},"lra":{"type":"number","description":"Loudness Range. Only supported for non-(E)AC-3 encoders. Default value is 7.0.","format":"float"},"peak_limit":{"type":"number","description":"Peak Limit. Default value is -2.0.","format":"float","minimum":-8,"maximum":-0.1}},"additionalProperties":false},"sample_rate":{"type":"integer","description":"Sample rate specifies the number of audio samples in hertz. The available options depend on the audio codec: AAC supports 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, and 96000. AC3/EAC3 support only 48000.","format":"int32","example":48000,"minimum":0,"exclusiveMinimum":true}},"additionalProperties":false},"minItems":1},"feature_flags":{"type":"array","description":"Feature flag strings enable experimental transcode features or functionality that are not yet or never will be promoted to the channeldoc model proper.","items":{"type":"string"}},"id3_mode":{"type":"string","description":"Specify how to process ID3 tags from the input source. If not specified, ID3 tags in the source will be ignored.","enum":["PASSTHROUGH"]},"resize_mode":{"type":"string","description":"Resize mode specifies how to scale a video up or down to match the output dimensions.","enum":["STRETCH","LETTERBOX"]},"segmenter":{"type":"object","description":"Segmenter configures how video GOPs and segments get generated.","properties":{"gop_duration_secs":{"type":"number","description":"GOP (group of pictures) duration specifies the amount of time between I-frames. Shorter durations can lower quality slightly as each I-frame uses more bits than P- \u0026 B-frames but can provide a better seeking experience when enabling thumbnail encoders and/or I-Frame Only playlists.","format":"double","example":2,"minimum":0,"exclusiveMinimum":true},"partials_mode":{"type":"string","description":"Not public because we haven't shipped low latency HLS yet and we probably need to update the naming.","enum":["GOP"]},"segment_duration_secs":{"type":"number","description":"Segment duration specifies the target duration of a single segment. Segments shorter than this duration can occur at signaling boundaries. This value _must_ be a multiple of the GOP duration value.","format":"double","example":6,"minimum":0,"exclusiveMinimum":true},"temi":{"type":"boolean","description":"Include TEMI (Timeline and External Media Information ISO/IEC 13818-1:2019 Annex U) to mpeg-ts segments."}},"additionalProperties":false},"thumbnail_encoders":{"type":"array","description":"Thumbnail encoders specify how to create image snapshots of the video stream.","items":{"type":"object","properties":{"height":{"type":"integer","description":"Height specifies the thumbnail image height in pixels.","format":"int32","example":180,"minimum":0,"exclusiveMinimum":true},"id":{"type":"string","description":"Encoder ID. IDs must be unique for all video and thumbnail encoders. This ID is referenced when setting up playlist publishing.","minLength":1},"width":{"type":"integer","description":"Width specifies the thumbnail image width in pixels.","format":"int32","example":320,"minimum":0,"exclusiveMinimum":true}},"additionalProperties":false}},"video_encoders":{"type":"array","description":"Video encoders specify video conversion settings, e.g. dimensions, codec, bitrate, etc.","items":{"type":"object","properties":{"bit_rate":{"type":"integer","description":"Bit rate specifies the number in bits used per second. Higher values result in better video quality but bigger file sizes. For H.264 this value is the target of the constrained variable bit rate.","format":"int32","example":6000000,"minimum":0,"exclusiveMinimum":true},"frame_rate":{"type":"string","description":"Frame rate specifies the number of images that are shown per second when playing back the video. For the best quality playback, this should match or be a multiple of the input source video stream.","enum":["FR_23_98","FR_24","FR_25","FR_29_97","FR_30","FR_50","FR_59_94","FR_60"],"example":"FR_60"},"h264":{"type":"object","description":"Configure the encoder to use the H.264 codec. Only one of ['H264Settings', 'H265Settings'] may be set","properties":{"profile":{"type":"string","description":"H.264 video profile, which defines various encoder features and settings. See https://en.wikipedia.org/wiki/Advanced_Video_Coding#Profiles for details.","enum":["BASELINE","MAIN","HIGH","HIGH_10","HIGH_422"]}},"additionalProperties":false},"h265":{"type":"object","description":"Configure the encoder to use the H.265 codec. Only one of ['H264Settings', 'H265Settings'] may be set","properties":{"hdr":{"type":"object","description":"Configure the HDR settings.","additionalProperties":false},"profile":{"type":"string","description":"H.265 video profile, which defines various encoder features and settings. See https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#Profiles for details.","enum":["MAIN","MAIN_10"]}},"additionalProperties":false},"height":{"type":"integer","description":"Height specifies the video height in pixels. Must be a multiple of two.","format":"int32","example":1080,"minimum":0,"exclusiveMinimum":true},"id":{"type":"string","description":"Encoder ID. IDs must be unique for all video and thumbnail encoders. This ID is referenced when setting up playlist publishing.","example":"1080p60","minLength":1},"width":{"type":"integer","description":"Width specifies the video width in pixels. Must be a multiple of two.","format":"int32","example":1920,"minimum":0,"exclusiveMinimum":true}},"additionalProperties":false},"minItems":1}},"additionalProperties":false}},"additionalProperties":false,"required":["ingest"]}},"securitySchemes":{"authcode":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://istreamplanet.auth0.com/authorize","tokenUrl":"https://istreamplanet.auth0.com/oauth/token"}}},"m2m":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://istreamplanet.auth0.com/oauth/token"}}}}},"info":{"contact":{"name":"ChannelAPI Support","url":"https://istreamplanet.com/contact/","email":"[email protected]"},"description":"This API provides a way to list, create, and run channels.\n\nChannels consist of inputs (ingest), transcoding settings like codecs and bitrates, and outputs (publishing).\n\nList calls use cursor-based pagination with [RFC 5988](https://tools.ietf.org/html/rfc5988) Link headers. Clients *should* read this header and follow the next link to read all pages of results.\n","title":"iStreamPlanet Channels API","version":"0.0.0"},"openapi":"3.0.3","paths":{"/v2/channels":{"get":{"description":"Get a list of your channels.","operationId":"list-channels","parameters":[{"name":"cursor","description":"Current page cursor","in":"query","schema":{"type":"string","description":"Current page cursor"},"explode":false},{"name":"page_size","description":"Number of items to return","in":"query","schema":{"type":"integer","description":"Number of items to return","format":"int32","default":100,"minimum":1,"maximum":100},"explode":false},{"name":"q","description":"Search query to match against for filtering a list of channels. This searches the channel ID, name, labels, and source ID.","in":"query","schema":{"type":"string","description":"Search query to match against for filtering a list of channels. This searches the channel ID, name, labels, and source ID.","minLength":3,"maxLength":256},"explode":false,"x-cli-name":"query"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SummaryList2"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"List channels","tags":["Channels"]}},"/v2/channels/{channel-id}":{"delete":{"description":"Delete a channel and stop publishing. This action is idempotent.","operationId":"delete-channel","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}},{"name":"If-Match","description":"Succeeds if the server's resource matches one of the passed values.","in":"header","schema":{"type":"array","description":"Succeeds if the server's resource matches one of the passed values.","items":{"type":"string"}}},{"name":"If-None-Match","description":"Succeeds if the server's resource matches none of the passed values. On writes, the special value * may be used to match any existing value.","in":"header","schema":{"type":"array","description":"Succeeds if the server's resource matches none of the passed values. On writes, the special value * may be used to match any existing value.","items":{"type":"string"}}},{"name":"If-Modified-Since","description":"Succeeds if the server's resource date is more recent than the passed date.","in":"header","schema":{"type":"string","description":"Succeeds if the server's resource date is more recent than the passed date.","format":"date-time"}},{"name":"If-Unmodified-Since","description":"Succeeds if the server's resource date is older or the same as the passed date.","in":"header","schema":{"type":"string","description":"Succeeds if the server's resource date is older or the same as the passed date.","format":"date-time"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Precondition Failed","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Delete channel","tags":["Channels"]},"get":{"description":"Get a channel's configuration","operationId":"get-channel","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}},{"name":"If-Match","description":"Succeeds if the server's resource matches one of the passed values.","in":"header","schema":{"type":"array","description":"Succeeds if the server's resource matches one of the passed values.","items":{"type":"string"}}},{"name":"If-None-Match","description":"Succeeds if the server's resource matches none of the passed values. On writes, the special value * may be used to match any existing value.","in":"header","schema":{"type":"array","description":"Succeeds if the server's resource matches none of the passed values. On writes, the special value * may be used to match any existing value.","items":{"type":"string"}}},{"name":"If-Modified-Since","description":"Succeeds if the server's resource date is more recent than the passed date.","in":"header","schema":{"type":"string","description":"Succeeds if the server's resource date is more recent than the passed date.","format":"date-time"}},{"name":"If-Unmodified-Since","description":"Succeeds if the server's resource date is older or the same as the passed date.","in":"header","schema":{"type":"string","description":"Succeeds if the server's resource date is older or the same as the passed date.","format":"date-time"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Channel"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"ETag":{"description":"ETag","schema":{"type":"string"}},"Last-Modified":{"description":"Last-Modified","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"304":{"description":"Not Modified"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Get Channel","tags":["Channels"]},"put":{"description":"Create or update an existing channel configuration.","operationId":"put-channel","parameters":[{"name":"If-Match","description":"Succeeds if the server's resource matches one of the passed values.","in":"header","schema":{"type":"array","description":"Succeeds if the server's resource matches one of the passed values.","items":{"type":"string"}}},{"name":"If-None-Match","description":"Succeeds if the server's resource matches none of the passed values. On writes, the special value * may be used to match any existing value.","in":"header","schema":{"type":"array","description":"Succeeds if the server's resource matches none of the passed values. On writes, the special value * may be used to match any existing value.","items":{"type":"string"}}},{"name":"If-Modified-Since","description":"Succeeds if the server's resource date is more recent than the passed date.","in":"header","schema":{"type":"string","description":"Succeeds if the server's resource date is more recent than the passed date.","format":"date-time"}},{"name":"If-Unmodified-Since","description":"Succeeds if the server's resource date is older or the same as the passed date.","in":"header","schema":{"type":"string","description":"Succeeds if the server's resource date is older or the same as the passed date.","format":"date-time"}},{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}},{"name":"validate_only","description":"Validate request but do not otherwise process it","in":"query","schema":{"type":"boolean","description":"Validate request but do not otherwise process it"},"explode":false}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/put-channel-request"}}}},"responses":{"201":{"description":"Created","headers":{"ETag":{"description":"ETag","schema":{"type":"string"}},"Last-Modified":{"description":"Last-Modified","schema":{"type":"string"}},"Location":{"description":"Location","schema":{"type":"string"}}}},"204":{"description":"No Content","headers":{"ETag":{"description":"ETag","schema":{"type":"string"}},"Last-Modified":{"description":"Last-Modified","schema":{"type":"string"}},"Location":{"description":"Location","schema":{"type":"string"}}}},"304":{"description":"Not Modified"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"412":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Precondition Failed","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Create/Update channel","tags":["Channels"]}},"/v2/channels/{channel-id}/dvr-window":{"delete":{"description":"Clears the DVR window for the channel by removing all video segments in the manifest from before the request. This sets the earliest time a player can rewind to this point.","operationId":"clear-dvr-window","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Clear DVR Window","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/id3":{"post":{"description":"Inserts the provided UTF-8 text metadata in the output stream embedded in a TXXX frame of a ID3 tag.","operationId":"insert-id3","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}},{"name":"Accept","description":"List of accepted Content-Type headers","in":"header","schema":{"type":"string","description":"List of accepted Content-Type headers"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsertMetadataRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsertMetadataResult"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Insert ID3","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/playback":{"get":{"description":"Get a channel's playback configuration","operationId":"get-playback-config","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelPlayback"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Get Channel Playback Config","tags":["Channels"]}},"/v2/channels/{channel-id}/preview-image":{"get":{"description":"Get a static image of what your channel is outputting. Valid Accept headers are: image/jpeg","operationId":"preview-image","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}},{"name":"Accept","description":"List of accepted Content-Type headers","in":"header","schema":{"type":"string","description":"List of accepted Content-Type headers"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Acceptable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"501":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Implemented","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Get Preview Image","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/program-end":{"post":{"description":"Inserts a 'program end' SCTE-35 message into the channel. This route should only be used for non-overlapping program markers. If you want overlapping program makers please use Generic Signal instead.","operationId":"program-end","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramSignal"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Program End","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/program-start":{"post":{"description":"Inserts a 'program start' SCTE-35 message into the channel. This route should only be used for non-overlapping program markers. If you want overlapping program makers please use Generic Signal instead.","operationId":"program-start","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramSignal"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Program Start","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/scte35":{"post":{"description":"Inserts a SCTE-35 formatted binary payload into the channel.","operationId":"insert-scte35","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scte35"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Insert SCTE-35","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/signal":{"get":{"description":"Returns the active signals for a channel.","operationId":"get-signals","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentList"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"ETag":{"description":"ETag","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Acceptable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Get Signals","tags":["Channel Operations"]},"post":{"description":"Inserts a SCTE-35 message into the channel.","operationId":"signal","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericSignalList"}}}},"responses":{"207":{"description":"Multi-status response; see body for details"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Generic Signal","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/slate":{"delete":{"description":"Removes any active slate and show the source video content.","operationId":"slate-out","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Slate out","tags":["Channel Operations"]},"post":{"description":"Replaces the current video source with a slate image or video.","operationId":"slate-in","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Slate"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Slate in","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/splice-end":{"post":{"description":"Inserts a 'splice insert end' SCTE-35 message into the channel.","operationId":"splice-end","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpliceInsertEndSignal"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Splice Insert End","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/splice-start":{"post":{"description":"Inserts a 'splice insert start' SCTE-35 message into the channel.","operationId":"splice-start","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpliceInsertStartSignal"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"408":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Timeout","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"413":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Request Entity Too Large","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Splice Insert Start","tags":["Channel Operations"]}},"/v2/channels/{channel-id}/timeline":{"get":{"description":"Returns up to twenty items from the event timeline for a channel, sorted in reverse-chronological order.","operationId":"get-channel-timeline","parameters":[{"name":"channel-id","description":"Unique channel identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique channel identifier","maxLength":60,"pattern":"^([a-z0-9]+(-*[a-z0-9]+)*)$"}},{"name":"offset","description":"Number of items to skip when calling a paginated API","in":"query","schema":{"type":"integer","description":"Number of items to skip when calling a paginated API","format":"int32"},"explode":false}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelTimelineEntryList"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"ETag":{"description":"ETag","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"501":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Implemented","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Get Channel Timeline","tags":["Audit Operations"]}},"/v2/sources":{"get":{"description":"Get a list of sources that are used to create channels.","operationId":"list-sources","parameters":[{"name":"cursor","description":"Current page cursor","in":"query","schema":{"type":"string","description":"Current page cursor"},"explode":false},{"name":"page_size","description":"Number of items to return","in":"query","schema":{"type":"integer","description":"Number of items to return","format":"int32","default":100,"minimum":1,"maximum":100},"explode":false}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SummaryList"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"List Sources","tags":["Sources"]}},"/v2/sources/{source-id}":{"get":{"description":"Get a source's configuration","operationId":"get-source","parameters":[{"name":"source-id","description":"Unique source identifier","in":"path","required":true,"schema":{"type":"string","description":"Unique source identifier","pattern":"^.*$"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Source"}}},"description":"OK","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"ETag":{"description":"ETag","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Service Unavailable","headers":{"Content-Type":{"description":"Content-Type","schema":{"type":"string"}},"Link":{"description":"Link","schema":{"type":"string"}}}}},"summary":"Get Source","tags":["Sources"]}}},"security":[{"authcode":[]},{"m2m":[]}],"servers":[{"url":"https://api.istreamplanet.com","description":"prod"}],"x-cli-config":{"security":"authcode","prompt":{"org":{"description":"Organization ID","example":"isp","exclude":true}},"params":{"audience":"https://platform.dtc.istreamplanet.net/{org}","client_id":"9joico3xz7UKKSn3HiCcI2RJWkqs1INQ","scopes":"offline_access"}}}